💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Mohammad Rahmatie
خطای Constant expression contains invalid operations
جامعه پی اچ پی ایجاد شده در ۱۶ بهمن ۱۳۹۸

با سلام

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

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

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

محسن موحد ۱۶ بهمن ۱۳۹۸، ۱۴:۲۷