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

青灯夜游
リリース: 2023-04-10 17:18:02
転載
2104 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!