خطای Constant expression contains invalid operations

پرسیده شده
فعالیت 1548 روز پیش
دیده شده 1176 بار
0

با سلام

وقتی متغییرها رو با استفاده از توابع بی نام در کلاس مقدار دهی میکنیم هنگام ساخت نمونه  بااین خطا مواجه میشویم  ولی در صورتی که اگرخارج از کلاس باشد خطایی نداریم دلیل این امر چیست؟ با تشکر 

فایل پیوست

Mohammad Rahmatie
Mohammad Rahmatie

16 بهمن 98

4

مورد تایید اساتید

حذف شده

اگر از 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();

اگرم سؤالی بود، کدتون رو بگذارید تا از روی کدتون توضیح بدم.

فایل پیوست

محسن موحد

توسط

محسن موحد

16 بهمن 98