PHP面向对象中self与$this的区别
- self代表类; $this代表对象
- 静态成员与静态方法是给类调用的, 不是给$this调用的
- 能用$this的地方一定可以self,能用self的地方不一定能用$this
- 静态方法中一定不能使用$this
类外:访问const(常量)或static(静态)修饰的成员属性或静态方法, 必须使用 :: 操作符, 除此之外的成员必须使用操作符 ->
类内:访问const(常量)或static(静态)修饰的成员, 必须使用 self:: 操作符, 除此之外的成员必须使用操作符 $this->
class ziruchu
{
public $name = '自如初';
public static $age = 1;
public function getMySelf()
{
// 输出 自如初
echo $this->name;
// 输出 1
echo self::$age;
// 输出 1
echo $this::$age;
}
public static function getStaticMethod()
{
echo self::$age;
// echo $this->name; // 报错
}
}
// 访问静态成员属性
echo ziruchu::$age;
ziruchu::getStaticMethod();
// 通过实例化对象访问
$zi = new ziruchu();
echo $zi->name;
$zi->getMySelf();
$zi->getStaticMethod();
请登录后再评论