هشدار ضعیف در موقع استفاده از PHPStorm | Call Back, Anonymous Function

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

سلام. من از PHPStorm استفاده می کنم. در همین جلسه یک هشدار ضعیف موقع استفاده از دستورات زیر رخ میده. در مرورگر چیزی نمایش داده نمیشه که یعنی از نظر PHP خطایی وجود نداره.

سوالم اینه که مشکل کجاست که این هشدار رو میده. متن هشدار هم به این صورت است.

وقتی مقدار متغیر callback موقع تعریف تابع test برابر NULL بزارم خطا از بین میره. منظورم پارامتر callback هست.

PHPStorm - Weak Warning: Optional parameter provided before require
function test(string $str = null, $callback) {
    $re = array(
        'lower' => strtolower($str),
        'upper' => strtoupper($str)
    );

    if (is_callable($callback)) {
        call_user_func($callback, $re);
    }
}

test('Hello', function($he) {
    print_r($he);
});
فایل پیوست

قاسمی
قاسمی

18 فروردین 00

0
حذف شده

سلام.

این خطایی که در PHPStrom اضافه شده، به شما میگه یک پارامتر اختیاری(optional) رو قبل از پارامتر ضروری(require) اضافه کردید.

پارامتر str رو شما برابر null کردید یعنی اختیاریش کردین و در واقع منظورتون این بوده که اگر پارامتر str مقدار دهی نشد، مقدار پیشفرضش null هست.

ولی وقتی این پارامتر رو قبل از callback میارید، دیگه اختیاری بودنش بی معنی میشه چون در هر صورت باید پارامتر str حتی اگر null هم باشه مقدار دهی بشه(یعنی نمیشه خالی گذاشتش) ولی اگر str بعد از callback بیاد، میتونه مقدار دهی نشه و این ترتیب درست میشه.

دلیل اینکه callback رو برابر null گذاشتید و خطا برداشته شد بخاطر اینه که callback رو هم optional کردید.

 

همچنین توضیحاتش در این لینک اومده. 

عنوان: Using optional parameters before the required ones

فایل پیوست

محسن موحد

توسط

محسن موحد

19 فروردین 00