千家信息网

PHP中怎么让字符串直接解析函数

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章给大家分享的是有关PHP中怎么让字符串直接解析函数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。PHP 字符串中直接解析函数的写法PHP 中的字符串理论上是不能够解
千家信息网最后更新 2025年02月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中怎么让字符串直接解析函数"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0