内置函数的字符串插值

时间:2015-11-09 10:48:02

标签: php function internal string-interpolation

我在PHP中有这样的东西

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

basename是一个内置函数。有没有办法可以使用字符串插值语法进行连接而不是.语法?

对于类的成员函数,这有效:

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

如何在引用字符串中类似地指定内部函数?刚刚学习。

1 个答案:

答案 0 :(得分:4)

你可以这样做:

$foo = 'bar';

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

example here

但实际上,你不应该:它混淆了你实际做的事情,并使一项微不足道的任务看起来比实际复杂得多(调试和维护这种代码是一场噩梦)。
我个人更喜欢保留连接,或者 - 如果你想 - 请在这里使用printf

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