У меня есть что-то подобное в PHP
$file = "$dir/" . basename($url);
basename
это встроенная функция. Есть ли способ я могу использовать синтаксис интерполяции строк для конкатенации вместо .
синтаксис?
Для функций-членов класса это работает:
$file = "$dir/ {$this->someFunc($url)}";
Как мне аналогичным образом указать внутренние функции в строках в кавычках? Только учится.
Вы можете сделать это так:
$foo = 'bar';
$func = "strtoupper";
echo "test: {$func($foo)}";
//or for assignments:
$path = sprintf(
'%s/%s',
$dir,
basename($file)
);
Но на самом деле, вы не должны: это запутывает то, что вы на самом деле делаете, и делает тривиальную задачу более сложной, чем на самом деле (отладка и поддержка такого рода кода — это кошмар).
Я лично предпочитаю оставить конкатенацию, или, если хотите, использовать printf
Вот:
printf(
'Test: %s',
strtoupper($foo)
);
Других решений пока нет …