我正在尝试编写一个用于处理orm /数据库连接的类。
我的计划是让每个模型类扩展一个具有基本crud功能的基础类。
我将表名和主键名存储在静态常量中作为PK&表
问题是我无法使用以下内容访问主键名称而不会生成'Paamayim Nekudotayim'错误。
$this->static::PK
我可以这样做:
$pk = static::PK
$this->$pk
我甚至可以这样做:
$this->fields[static::PK]
但是
$this->static::PK
似乎无法正常工作
任何想法,评论等,非常欢迎。
答案 0 :(得分:2)
我猜测构造是不明确的,并且解释器不知道如何处理它,因此解析错误。换句话说,它不知道你的意思是:
$s = $this->static;
$s::PK;
或者这个:
$pk = static::PK;
$this->$pk;
这两个都是有效的,但工作方式非常不同(你可以想象)。
用花括号括起常量访问权限,它将起作用:
$this->{static::PK}