وقتی متغییرها رو با استفاده از توابع بی نام در کلاس مقدار دهی میکنیم هنگام ساخت نمونه بااین خطا مواجه میشویم ولی در صورتی که اگرخارج از کلاس باشد خطایی نداریم دلیل این امر چیست؟ با تشکر
اگر از php7 به بالا استفاده میکنید به این شکل باید عمل کنید:
<?php
class Test {
public $sum = 0;
function __construct() {
$this->sum = function($a, $b) { return $a + $b; };
echo ($this->sum)(1, 2);
}
}
new Test();
و php نسخههای 6 تا 5.3 از magic method هایی مثه __call یا __invoke میتونید استفاده کنید:
<?php
class Test {
public $sum = 0;
function __construct() {
$this->sum = function($a, $b) { return $a + $b; };
echo $this->sum->__invoke(1, 2);
}
}
new Test();
اگرم سؤالی بود، کدتون رو بگذارید تا از روی کدتون توضیح بدم.