沉冰浮水

沉冰浮水

做最终到的事,成为最终成为的人!
github
bilibili
mastodon
zhihu
douban

「水坑」Z-BlogPHPのインターフェースの本質は、「PHP可変関数」です。

#

厳密に言えば、すべてのインターフェースは「リスナー」であり、インターフェース自体がトリガーされ、指定された操作が実行されるか、またはインターフェースに渡されたデータが処理されます。

上記は、Z-BlogPHP ドキュメントのプラグインインターフェースの部分に書かれている要約です:Z-BlogPHP 公式ドキュメント

さらに、インターフェースメカニズムは、本質的には PHP の「可変関数」の一種の応用であり、指定された操作を関数として定義し、それを「可変関数」として呼び出す方法です;

そして、PHP には「可変変数」という概念もあり、それが Z-BlogPHP のテンプレートメカニズムの基礎です;

「水坑」Z-BlogPHP テンプレートメカニズムの解説「簡易版」_コンピューターネットワーク_沈氷浮水:

https://www.wdssmq.com/post/20201026266.html

これらの基本的な性質をカプセル化して使用することで、Z-BlogPHP や他の PHP プログラムが構築されます。そのため、必要なのは Z-BlogPHP のドキュメントではなく、PHP のドキュメントを見ることです。

#

「可変関数」に関するデモコード;

function fnTest1()
{
    # code...
}
function fnTest2()
{
    # code...
}
function fnTest3()
{
    # code...
}

// $funcの値に基づいて異なる関数を呼び出す
$func = "Test1";

// -----------
// 1. 通常のif else文を使用する方法
if ($func === "Test1") {
    fnTest1();
} elseif ($func === "Test2") {
    fnTest2();
} elseif ($func === "Test3") {
    fnTest3();
}

// -----------
// 2. switch caseを使用する方法
switch ($func) {
    case 'Test1':
        fnTest1();
        break;
    case 'Test2':
        fnTest2();
        break;
    case 'Test3':
        fnTest3();
        break;
    default:
        # code...
        break;
}

// -----------
// 3. call_user_funcを使用する方法
call_user_func("fn$func");
// call_user_funcはあまり使ったことがないですが、直訳すると理解しやすいです;
// ここに書いたのはAIのヒントですが、AIはcall_user_func_arrayというものもあると教えてくれましたので、使い方と用途をもう一度調べる必要があります;
// そして、copilotに関する図は以下のBilibiliのリンクにあります;

// -----------
// 4. 可変関数を使用する方法
$func = "fn$func";
$func();

#

PHP: 可変関数 - Manual:

https://www.php.net/manual/ja/functions.variable-functions.php

PHP: 可変変数 - Manual:

https://www.php.net/manual/ja/language.variables.variable.php

copilot に関する図 - 沈氷浮水の動画:

https://t.bilibili.com/708592243066273862

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。