【问题标题】:Is there any way to get rid of the PHP parent keyword?有什么办法可以去掉 PHP 的 parent 关键字?
【发布时间】:2013-11-28 10:11:54
【问题描述】:

我有一个从 Yii 生成为 Parent 的模型。

class Parent extends AppModel {}

如下使用时出现错误。

$parent = new Parent();

致命错误:不能使用 'Parent' 作为类名,因为它保留在 E:\Customer\Qelasy\Project\QelasySecurity\web\SourceCode\protected\modules\user\models\Parent.php 在线14

据我了解,这是因为Parent 是 PHP 中的关键字,而 Yii 已生成此关键字。是否有任何解决方法可以使其与 Parent 一起使用,而无需将模型名称更改为 Parents

【问题讨论】:

标签: php yii keyword


【解决方案1】:

没有。你不能命名一个类Parent,句号。它是核心语言中的保留关键字。除非您更改核心语言,否则您无法规避此限制。由于类名不区分大小写,下面的语句会做什么?

public function foo() {
    parent::bar();
}

因此:没有命名与关键字冲突的类。

【讨论】:

    【解决方案2】:

    不,您必须将模型重命名为其他名称。尝试更具体地使用您的班级名称。这是什么家长?

    我的父母?用户家长?应用父?也许use a synonym

    【讨论】:

      【解决方案3】:

      Parent是保留的php关键字,不能作为类名,使用不同的名字,

       class myclass extends AppModel {}
      
        $myclass = new myclass();
      

      这里是链接,你可以找到关键字列表:http://php.net/manual/en/reserved.php

      【讨论】:

        猜你喜欢
        • 2015-05-08
        • 2018-12-06
        • 2020-12-25
        • 1970-01-01
        • 2012-10-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-27
        • 2010-11-15
        相关资源
        最近更新 更多