如何使 class 的方法成为 php 中的闭包?
How do I make a method of a class a closure in php?
<?php
class Container
{
public $say = 'hi';
}
class Loader
{
public function callSay()
{
echo $this->say;
}
}
$container = new Container;
$run1 = function () {
echo $this->say;
};
$run1->call($container); //hi
$loader = new Loader;
$run2 = function () use ($loader) {
$loader->callSay();
};
$run2->call($container); //Undefined property: Loader::$say
我试图将 $loader->callSay() 变成一个闭包并将其应用于 $container 但它不起作用。
如何在 class 闭包中创建一个方法,然后将其绑定到另一个 class?
Loader class 的 callSay 方法想要访问 say 属性。 属性 表示不存在。
最简单的方法是创建此 属性 并用您的值填充它。
$run2 = function() use ($loader) {
$loader->say = $this->say;
$loader->callSay();
};
<?php
class Container
{
public $say = 'hi';
}
class Loader
{
public function callSay()
{
echo $this->say;
}
}
$container = new Container;
$run1 = function () {
echo $this->say;
};
$run1->call($container); //hi
$loader = new Loader;
$run2 = function () use ($loader) {
$loader->callSay();
};
$run2->call($container); //Undefined property: Loader::$say
我试图将 $loader->callSay() 变成一个闭包并将其应用于 $container 但它不起作用。
如何在 class 闭包中创建一个方法,然后将其绑定到另一个 class?
Loader class 的 callSay 方法想要访问 say 属性。 属性 表示不存在。 最简单的方法是创建此 属性 并用您的值填充它。
$run2 = function() use ($loader) {
$loader->say = $this->say;
$loader->callSay();
};