Php 为什么可以';t我使用$this->;静态::PK
我正在尝试编写一个用于处理orm/数据库连接的类 我的计划是让每个模型类扩展一个具有基本crud功能的底层类 我将表名和主键名存储在静态常量中,作为PK&table 问题是,如果不生成“Paamayim-Nekudotayim”错误,我无法使用以下内容访问主键名称Php 为什么可以';t我使用$this->;静态::PK,php,static,Php,Static,我正在尝试编写一个用于处理orm/数据库连接的类 我的计划是让每个模型类扩展一个具有基本crud功能的底层类 我将表名和主键名存储在静态常量中,作为PK&table 问题是,如果不生成“Paamayim-Nekudotayim”错误,我无法使用以下内容访问主键名称 $this->static::PK 我可以这样做: $pk=static::pk $this->$pk 我甚至可以做到: $this->fields[static::PK] 但是 $this->static::PK 只是好像不管用 欢
$this->static::PK
我可以这样做:
$pk=static::pk
$this->$pk
我甚至可以做到:
$this->fields[static::PK]
但是
$this->static::PK
只是好像不管用
欢迎任何想法、评论等。我猜这个构造是不明确的,解释器不知道如何处理它,因此出现了解析错误。换句话说,它不知道你的意思是:
$s = $this->static;
$s::PK;
或者这个:
$pk = static::PK;
$this->$pk;
这两种方法都是有效的,但工作方式非常不同(正如您所想象的)
用大括号括住常量访问权限,它将起作用:
$this->{static::PK}
避免使用诸如“static”之类的保留字。啊,对不起,我收回了这句话——它在我的代码中拾取了同一事物的第二个实例~谢谢你!!!