PHP 将 $this 传递给类外的函数

标签 php javascript this

你能像在 JavaScript 中那样传入 $this 变量以在“全局”空间中的函数中使用吗?我知道 $this 是用于类(class)的,但只是想知道。我试图避免使用“global”关键字。

例如:

class Example{
  function __construct(){ }
  function test(){ echo 'something'; }
}

function outside(){ var_dump($this); $this->test(); }

$example = new Example();

call_user_func($example, 'outside', array('of parameters')); //Where I'm passing in an object to be used as $this for the function

在 javascript 中,我可以使用 call 方法并分配一个 this 变量用于函数。只是好奇是否可以使用 PHP 完成同样的事情。

最佳答案

PHP 与 JavaScript 有很大不同。 JS 是一种基于原型(prototype)的语言,而 PHP 是一种面向对象的语言。在 PHP 中,在类方法中注入(inject)不同的 $this 是没有意义的。

您可能正在寻找将不同的 $this 注入(inject)闭包(匿名函数)。使用即将推出的 PHP 5.4 版本可以实现这一点。请参阅object extension RFC .

(顺便说一句,您确实可以将 $this 注入(inject)到不是 instanceof self 的类中。但正如我已经说过的,这没有任何意义完全没有。)

关于PHP 将 $this 传递给类外的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7774444/

相关文章:

php - 使用模型类在 Symfony 中检索数据

php - YouTube搜索API

javascript - 如何禁用浏览器的clt+u?

javascript - 如何传递函数作用域(而不是上下文)?

Php openSSL 加密 - 防止特殊字符

php - 维基百科 API 对于某些查询不返回任何内容

javascript - 当 DOM 元素的计算样式改变时触发事件?

javascript - 从 Spring MVC 列表属性填充 HTML 有序列表

javascript - 使用 Mocha 测试 Promise 时出错 - 'TypeError: Cannot read property ' resolve'of undefined'

javascript - “this”关键字如何工作?