内置函数的字符串插值
String interpolation for built-in functions
我在 PHP
中有类似的东西
$file = "$dir/" . basename($url);
basename
是内置函数。有没有一种方法可以使用字符串插值语法代替 .
语法进行连接?
对于 class 的成员函数,这有效:
$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)
);
我在 PHP
中有类似的东西$file = "$dir/" . basename($url);
basename
是内置函数。有没有一种方法可以使用字符串插值语法代替 .
语法进行连接?
对于 class 的成员函数,这有效:
$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)
);