Строковая интерполяция для встроенных функций

У меня есть что-то подобное в PHP

$file = "$dir/" . basename($url);

basename это встроенная функция. Есть ли способ я могу использовать синтаксис интерполяции строк для конкатенации вместо . синтаксис?

Для функций-членов класса это работает:

$file = "$dir/ {$this->someFunc($url)}";

Как мне аналогичным образом указать внутренние функции в строках в кавычках? Только учится.

1

Решение

Вы можете сделать это так:

$foo = 'bar';

$func = "strtoupper";
echo "test: {$func($foo)}";
//or for assignments:
$path = sprintf(
'%s/%s',
$dir,
basename($file)
);

пример здесь

Но на самом деле, вы не должны: это запутывает то, что вы на самом деле делаете, и делает тривиальную задачу более сложной, чем на самом деле (отладка и поддержка такого рода кода — это кошмар).
Я лично предпочитаю оставить конкатенацию, или, если хотите, использовать printf Вот:

printf(
'Test: %s',
strtoupper($foo)
);
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]