【问题标题】:Expression is not allowed as field default value不允许将表达式作为字段默认值
【发布时间】:2016-05-04 09:43:05
【问题描述】:

我正在尝试为全班提供$app

首先,我明白了:

“不允许将表达式作为字段默认值”

其次,在第 5 行,我得到:

未知变量$app

我怎样才能实现我的目标?

class UserController extends XController
{
    var $app = Yii::app();;
    public function init()
    {
        $test = $app;

【问题讨论】:

  • 为什么semicolon ;这一行有2个var $app = Yii::app();;??
  • 使用 Yii;使用应用程序的命名空间。
  • 成员的默认值必须是常量表达式,而不是(例如)变量、属性或函数调用。 php.net/manual/en/language.oop5.constants.php

标签: php oop


【解决方案1】:

你不能调用方法来为 PHP 中的变量设置默认值,即使它是静态方法也不行。将其更改为在构造函数中设置:

use Yii;

class UserController extends XController    
{
    var $app;

    function __construct() {
        $this->app = Yii::app();
    }

    public function init()    
    {
        $test = $this->app;
    } 
}

附带说明,您不应该在 PHP 版本 > 4 中使用 var 关键字,请参阅 this question 以获得解释。

【讨论】:

    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 2011-06-30
    • 2017-05-23
    相关资源
    最近更新 更多