「水坑」Z-BlogPHP 接口本质之「PHP 可变函数」

吐槽/反馈/建议:我的咸鱼心  爱发电-@wdssmq

严格来说,全部接口都是「监听」,监听接口本身被触发,然后执行指定的操作,或者对接口传递的数据进行处理。

上边是写在 Z-BlogPHP 文档里关于插件接口部分的总结:Z-BlogPHP 官方文档

更进一步,接口机制本质上是 PHP 中「可变函数」的一种应用,将「指定的操作」定义为函数,然后以「可变函数」的方式来调用;

然后 PHP 还有一个 「可变变量」的概念,则是 Z-BlogPHP 模板机制的基础;

「水坑」Z-BlogPHP 模板机制讲解「简易版」_电脑网络_沉冰浮水:

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

对这些基础性质进行封装使用才构成了 Z-BlogPHP 或者其他的 PHP 程序,所以很多时候你需要的是看 PHP 的文档,而不是嫌 Z-BlogPHP 的文档不够详细;

关于「可变函数」的示意代码;

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 有张附图可以见下边 B 站动态链接里;

// -----------
// 4. 使用可变函数
$func = "fn$func";
$func();

PHP: 可变函数 - Manual:

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

PHP: 可变变量 - Manual:

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

关于 copilot 的附图 - 沉冰浮水的动态:

https://t.bilibili.com/708592243066273862


爱发电

本文标题:《「水坑」Z-BlogPHP 接口本质之「PHP 可变函数」》作者:沉冰浮水
原文链接:https://www.wdssmq.com/post/20220409155.html
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

相关文章

蛋卷 蛋卷 发布于 2011-03-03 20:47:04  
#cmt3220
只可远观,话说去了验证码吧 。。。
回复
囧啊囧 囧啊囧 发布于 2011-03-03 20:29:21  
#cmt3219
我发微博去
回复
发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

网站分类

  • 订阅本站的 RSS 2.0 新闻聚合

搜索

本周旧文

近期观影记录:超级马里奥,死侍与金刚狼。。

搬家也告一段落,虽然搬过来的东西还得归置,新衣柜虽说已经散俩月味儿了,但还是不想放衣服进去。

要不我每年汇总整理一次??碎雨集_沉冰浮水_第1页

所以,不带这条的话,2024 年目前只发了 13 条嘟????

VSCode 内 git 操作卡住的时候没办法主动取消一直是个痛点,一般都是推送或拉取,今天连提交都卡了。。

又一个夏天过去了,所以今年也没买防水鞋套;然后天凉了,为了应对踢被子买了睡袋,不知道 1.2 米会不会略窄。。

《五至七时的克莱奥》,2018 年 6 月加入列表,21 年 11 月底发现 B 站上线了这部,直到前几天才看完,还是分两次看的。。接下来有五项是 2019 年的,都是电影 —— 略长的待办列表。。

有用程序自动抓取自己带 tag 的嘟,然后按年备份后从线上删除;刚发现去年的数据有备份但是没删线上??和本地数据对比后发现线上的还少一条,Why??

本质上,每个人需要的是「让自己面临的问题得到解决」的能力。。

这又涉及到直接能力和间接能力,,缺乏直接能力很正常,视情况可以通过学习来掌握直接能力,或者「请」有直接能力的人来帮自己解决。。

缺乏间接能力的情况是真没救,尤其是对「这是**我自己**面临的问题」这一前提没有明确认知的人。。

其实,在认知意义上,焦虑时我知道这种情绪对应「焦虑」这个文法词汇,此外还有「压抑」「悲伤」等等,然而「抑郁」其实是个我认知体系外的词,虽然经常一些情绪感受我找不到对应的语言词汇来表述,却也只能将其实表述为「找不到对应的语言词汇来表述」的某些感受。。

爱发电支持者

最新留言

友情链接