You can also access private data:
<?php
class Value {
private $value;
public function __construct($value) {
$this->value = $value;
}
}
$foo = new Value('Foo');
$bar = new Value('Bar');
$closure = function () { var_dump($this->value); };
$closure->call($foo);
$closure->call($bar);
?>
Output:
string(3) "Foo"
string(3) "Bar"Closure::call
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Closure::call
Референца за `closure.call.php` со подобрена типографија и навигација.
Closure::call
Интерфејсот SessionUpdateTimestampHandlerInterface
Closure::call — Ги врзува и ги повикува затворањата
= NULL
Привремено го врзува затворањето на newThis, и го повикува со било кои дадени параметри.
Параметри
newThis-
На object за да го врзе затворањето за времетраењето на повикот.
args-
Нула или повеќе параметри, кои ќе бидат дадени како параметри на затворањето.
Вратени вредности
Враќа вратена вредност од затворањето.
Примери
Пример #1 Closure::call() example
<?php
class Value {
protected $value;
public function __construct($value) {
$this->value = $value;
}
public function getValue() {
return $this->value;
}
}
$three = new Value(3);
$four = new Value(4);
$closure = function ($delta) { var_dump($this->getValue() + $delta); };
$closure->call($three, 4);
$closure->call($four, 4);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
int(7) int(8)
Белешки од корисници 2 забелешки
Prior PHP 7.0 you can use this code:
<?php
$cl = function($add) { return $this->a + $add; };
$cl->bindTo($newthis);
return call_user_func_array($cl, [10]);
?>
But this bind the closure permanently! Also read the article for Closure::bindTo() about binding closures from static context.