不能将其他命名空间中的变量用作PHP中的默认函数参数

时间:2015-05-07 03:45:20

标签: php laravel

我正在使用Laravel 5,在一个类中我定义了函数:

<?php namespace App\Helpers;

use App\Helpers\CommonConst;

class ResTools {

    public static function resErr($data, $statusCode=CommonConst::$ERROR_CODES['BAD_REQUEST']){
        // Some code here
    }
}

CommonConst是:

class CommonConst {
    public static $ERROR_CODES = [
        'OK' => 200,
        'BAD_REQUEST' => 400,
        'UNAUTHORIZED' => 401,
        'FORBIDEN' => 403,
        'NOT_FOUND' => 404,
        'METHOD_NOT_ALLOWED' => 405,
        'INTERNAL_SERVER_ERROR' => 500,
    ];


}

跑步时我总是收到错误:

syntax error, unexpected '$ERROR_CODES' (T_VARIABLE), expecting identifier (T_STRING)

我该如何解决?

1 个答案:

答案 0 :(得分:2)

不幸的是,您的$ERROR_CODES变量不是常量,它是一个静态变量。您不能将方法参数的值默认为变量。

以下是一个例子:

http://ideone.com/Hog5cD