Hi,
Hi all,
Reading our bug tracker I noticed a good feature request [1] from
2009 which
points to an interesting feature that I think makes sense for us,
since we
are now working with $f() using objects and strings, and the
array('class',
'method') is an old known for call_user_func()-like functions.
So, I wrote a patch [2] that allow such behavior to be consistent
with
arrays. See some examples:
class Hello {
public function world($x) {
echo "Hello, $x\n"; return $this;
}
}
$f = array('Hello','world');
var_dump($f('you'));
$f = array(new Hello, 'foo');
$f();
All such calls match with the call_user_func() behavior related to
magic
methods, static & non-static methods.
The array to be a valid callback should be a 2-element array, and it
must be
for the first element object/string and for the second string only.
(just
like our zend_is_callable() check and opcodes related to init call)
Any thoughts?
what happens if I use this code.
class Foo {
public $bar;
public function __construct() {
$this->bar = array($this, 'baz');
$this->bar();
}
public function bar() {
echo 'bar';
}
public function baz() {
echo 'baz';
}
}
new Foo();
What is the output of this snippet?
Are there the same rules as for closures?
Christian
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php