В PHP мы можем делать такие вещи:
$who = 'world';
$a = 'hello ' . $who;
или
$a = "hello $who";
или
$a = "hello {$who}"
Цитирование Стивен Клей из php.net в раздел операторов String последний способ является наилучшим, потому что когда мы используем точки, PHP вынужден повторно объединять все строки.Также, если нам нужно объединить больше переменных, последний способ лучше, чем второй. Но , Каков наилучший способ, если мне нужно объединить значение из статической переменной класса?PHP выдает ошибку, если вы пытаетесь объединить переменную непосредственно в класс пространства имен, без использования точек.Только первый путь, показанный ранее, разрешен.Я хочу знать, есть ли какой-то другой способ сделать это
ОШИБКА:
$a = "hello \namespace\classname::$who"; //NOTICE: undefined variable who
$b = "hello ${\namespace\classname::$who}"; //NOTICE: undefind variable classname
$c = "hello \namespace\classname::${who}"; //NOTICE: undefine variable who.
$d = "hello {\namespace\classname::$who}"; //NOTICE: undefine variable who
Я пытался объяснить с помощью простого кода, на самом деле мне нужно объединить статическую переменную изкласс, который я не могу получить экземпляр.Если вы добавили некоторый класс в переменную, а затем попытались объединить статическое свойство, то это также будет выполнено правильно
$who = new \namespace\classname();
$a = "{$who::$who} $a"; // this run ok.