gpt4 book ai didi

PHP ob_start : callback a static method with $this

转载 作者:行者123 更新时间:2023-12-03 23:24:37 26 4
gpt4 key购买 nike

使用 PHP 的 ob_start($callback),您可以将静态方法作为回调传递,如下所示:

class TemplateRenderer {
function myCallback($bufferContents) {
return 'Foobar instead of the buffer';
}
}

ob_start(array('TemplateRenderer', 'myCallback'));

或者你可以像这样引用一个对象:
$myTemplateRenderer = new TemplateRenderer();
ob_start(array($myTemplateRenderer, 'myCallback'));

这两个都有效,但我想知道是否可以从类方法中启动输出缓冲区,并使用 $this 引用回调
class TemplateRenderer {
function myCallback($bufferContents) {
return 'Foobar instead of the buffer';
}

function init() {
// --- this doesn't work ----
ob_start(array($this, 'myCallback'));
// --- this doesn't work either ----
ob_start(array('this', 'myCallback'));
}
}

TemplateRenderer::init();

如果可能的话,从它自己的类中引用“可调用”的语法是什么?

最佳答案

我会遵循 Barmar 的建议,但是如果您出于某种原因不想进行实例化,则可以尝试以下解决方案:

class TemplateRenderer {
static function myCallback($bufferContents) {
return 'Foobar instead of the buffer';
}

function init() {
ob_start(array('self', 'myCallback'));
}
}

TemplateRenderer::init();

关于PHP ob_start : callback a static method with $this,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30362407/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com