【发布时间】:2019-02-09 18:59:53
【问题描述】:
我对对象的不同约定以及访问它们的函数和变量有点困惑。
当我从对象或对象内访问某些内容时,我知道如何使用->。当我在一个可以使用parent::item 或classname::item 的对象中时,我也知道同样的情况,但我不知道除了使用它们之外,因为它们有效。有人会为我分解这些并解释我何时以及为什么应该使用一种方法而不是另一种方法吗?
class mammal{
public age = 7;
}
class dog extends mammal{
public dogSpecificVal;
public function getAge(){
return $this->age;
return $parent::age;
return $mammal::age;
}
}
$clifford = new dog();
$cliffordAge = $clifford->getAge();
在该示例中,我使用了三种不同的方法来检索年龄。它们都有效,但我不知道为什么或何时应该使用其中一个。
【问题讨论】:
-
一个是静态的 (
::),一个是实例化的 (->)。它主要归结为两种不同的方式来获取相同的信息,但有一些差异和理由来选择哪一种。这里有一些链接解释了两者之间的区别以及何时使用它们:When to use static vs instantiated、Static vs Instance method
标签: php