我知道静态比自我好,因为自我做后期静态绑定。
但我想知道哪一个最适合引用常量变量。
class Black
{
const color = 'black';
public function byThis()
{
return $this::color;
}
public function bySelf()
{
return self::color;
}
public function byStatic()
{
return static::color;
}
}
我检查了三个吸气剂的效果。哪一个是最好的选择?(我使用PHP7.0)
最佳答案
phpclass constants documentation建议对类中的常量使用self::
。我个人会留下来。
每个关键字都返回相同的值,即使该类使用常量的另一个值扩展另一个类,但返回父类值的parent::
除外:
class White {
const color = "white";
}
class Black extends White
{
const color = "black";
public function byThis()
{
return $this::color;
}
public function bySelf()
{
return self::color;
}
public function byStatic()
{
return static::color;
}
public function byParent() {
return parent::color;
}
}
$black = new Black;
echo "byThis: " . $black->byThis() . PHP_EOL;
echo "bySelf: " . $black->bySelf() . PHP_EOL;
echo "byStatic: " . $black->byStatic() . PHP_EOL;
echo "byParent: " . $black->byParent() . PHP_EOL;
结果将是:
byThis: black
bySelf: black
byStatic: black
byParent: white