聊聊PHP中如果让字符串直接解析函数(技巧分享)
时间:2022-06-01 来源:互联网
PHP中如果让字符串直接解析函数?下面本篇文章给大家分享一下PHP 字符串中直接解析函数的写法,希望对大家有所帮助!

PHP 字符串中直接解析函数的写法

PHP 中的字符串理论上是不能够解析函数的,仅能够解析变量。最近发现一种特殊的写法,是可以让字符串直接解析函数的。
写法
// 单行
${!${''} = 代码}
// 多行
${!${''} =
代码
}个人认为这种写法实际上还是通过解析变量实现的。= 左边是一个特殊名称的变量,= 右边只要符合赋值变量的代码块均可以在字符串中解析。
示例
以下代码仅供学习交流,实际工作中不建议用这种写法。
一、
$fruits = implode('、', ['apple', 'banana']);
var_dump("fruits: $fruits."); // 正常写法解析变量
// string(23) "fruits: apple、banana."
var_dump("fruits: implode('、', ['apple', 'banana'])."); // 错误写法不能够解析函数
// string(44) "fruits: implode('、', ['apple', 'banana'])."
var_dump("fruits: ${!${''} = implode('、', ['apple', 'banana'])}."); // 特殊写法解析函数成功
// string(23) "fruits: apple、banana."
var_dump("fruits: ${!${''} = implode('、',
[
'apple',
'banana'
])}."
); // 多行书写依然解析函数成功
// string(23) "fruits: apple、banana."二、
var_dump("fruits: ${!${''} = $fruit ?? 'apple'}.");
// string(14) "fruits: apple."
var_dump("fruits: ${!${''} = isset($fruit) ? $fruit : 'apple'}.");
// string(14) "fruits: apple."三、
$fruit = function (){
return 'banana';
};
var_dump("fruits: ${!${''} = $fruit() }.");
// string(15) "fruits: banana."
var_dump("fruits: ${!${''} = call_user_func(function (){
$fruits = [
'apple',
'banana'
];
return implode('、', $fruits);
}) }.");
// string(23) "fruits: apple、banana."四、
class Fruit
{
public function __toString()
{
return 'banana';
}
}
var_dump("fruits: ${!${''} = new Fruit() }.");
// string(15) "fruits: banana."推荐学习:《PHP视频教程》
相关阅读更多 +
-
潜水员戴夫怎么才能抓到海马 2025-10-27 -
怪物猎人荒野电锯流盾斧怎么配装-电锯流配装搭配 2025-10-27 -
币安vs欧易:合约持仓人数比数据哪家更全面? 2025-10-27 -
最终幻想14水晶世界召唤师有什么技能-技能详细 2025-10-27 -
燕云十六声周渐英对话怎么触发-周渐英聊天 2025-10-27 -
【SEO优化版】"摸鱼是什么梗"揭秘职场人都在用的偷懒暗号 轻松get流行文化 2025-10-27
最近更新