ホームページ >バックエンド開発 >PHPチュートリアル >PHP で文字列関数を直接解析する方法について話しましょう (スキル共有)

PHP で文字列関数を直接解析する方法について話しましょう (スキル共有)

青灯夜游
青灯夜游転載
2021-10-09 18:52:252151ブラウズ

PHP で文字列解析を直接機能させるにはどうすればよいですか?次の記事では、PHP 文字列で直接解析関数を記述する方法を説明します。

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."
4.

class Fruit
{
    public function __toString()
    {
        return 'banana';
    }

}
var_dump("fruits: ${!${''} = new Fruit() }.");
// string(15) "fruits: banana."
推奨学習: 「PHP ビデオ チュートリアル

以上がPHP で文字列関数を直接解析する方法について話しましょう (スキル共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。