为什么我不能使用$ this-> static :: PK

时间:2011-11-26 16:24:31

标签: php static

我正在尝试编写一个用于处理orm /数据库连接的类。

我的计划是让每个模型类扩展一个具有基本crud功能的基础类。

我将表名和主键名存储在静态常量中作为PK&表

问题是我无法使用以下内容访问主键名称而不会生成'Paamayim Nekudotayim'错误。

$this->static::PK

我可以这样做:

$pk = static::PK
$this->$pk

我甚至可以这样做:

$this->fields[static::PK]

但是

$this->static::PK

似乎无法正常工作

任何想法,评论等,非常欢迎。

1 个答案:

答案 0 :(得分:2)

我猜测构造是不明确的,并且解释器不知道如何处理它,因此解析错误。换句话说,它不知道你的意思是:

$s = $this->static;
$s::PK;

或者这个:

$pk = static::PK;
$this->$pk;

这两个都是有效的,但工作方式非常不同(你可以想象)。

用花括号括起常量访问权限,它将起作用:

$this->{static::PK}