为啥使用 array($this,'function') 而不是 $this->function()
Posted
技术标签:
【中文标题】为啥使用 array($this,\'function\') 而不是 $this->function()【英文标题】:why use array($this,'function') instead of $this->function()为什么使用 array($this,'function') 而不是 $this->function() 【发布时间】:2016-04-06 01:07:07 【问题描述】:我正在检查一个 WordPress 插件,我在一个类的构造函数中看到了这个函数:
add_action('init', array($this, 'function_name'));
我搜索发现array($this, 'function_name')
是一个有效的回调。我不明白的是:为什么要使用这种方法,而不是使用$this->function_name();
这是一个示例代码:
class Hello
function __construct()
add_action('init', array($this, 'printHello'));
function printHello()
echo 'Hello';
$t = new Hello;
【问题讨论】:
【参考方案1】:根据您的示例代码,$this->printHello()
在您的 class Hello
之外无法工作。传递对当前对象 ($this) 的引用和方法名称将允许外部代码调用对象的给定方法。
【讨论】:
以上是关于为啥使用 array($this,'function') 而不是 $this->function()的主要内容,如果未能解决你的问题,请参考以下文章
为啥在导入套接字时会出现此错误:“TypeError: _websocket_js__WEBPACK_IMPORTED_MODULE_0__.default.send is not a functio
php ci框架 $this->session->set_userdata 为啥取不到值 session已经默认开启了