Мой класс выглядит так:Присвоить значение свойства, используя анонимную функцию
<?php
class ExampleClass{
private $example_property = false;
public function __construct(){
$this->example_property = function() {
$this->example_property = 1;
return $this->example_property;
};
}
public function get_example_property(){
return $this->example_property;
}
}
$example = new ExampleClass();
echo $example->get_example_property();
Property $example_property
должен быть false
, пока вы не вызовете его, а затем, в первый раз это называется, я хочу назначить 1
к нему. Что случилось с моим кодом?
Ошибка: Error Object of class Closure could not be converted to string on line number 20
.
Какой язык вы пришли? Что вы на самом деле пытаетесь сделать? – naomik
'$ this-> example_property' уже закрывается, когда' ExampleClass' создает экземпляр, и когда вы получаете его с помощью 'get_example_property', вам нужно сначала его вызвать. – Federkun
Просто добавьте 'if (! $ This-> example_property) {$ this-> example_property = 1}' к функции 'get_example_property'. Я думаю, нет необходимости использовать закрытие. – akrys