php类的访问符,php 类中 :: 与 -> 符号的使用

范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员,类常量,还可以用于覆盖类中的属性和方法。

1、:: 的语法用于静态变量和方法,或者常量。其实也就是用于获取类的数据。

这句话反之也是成立的。获取类的数据,必须使用 :: 获取

2、类与对象是不同的,对象是需要实例化的。可以实例化的地方才可以使用 $this 变量。

3、静态方法不可以访问普通属性,因为这些属性属于对象,而不属于类

4、只有在使用 parent 关键字调用方法时,才能对一个非静态方法进行静态形式的调用。

5、static 并不意味着其中的方法或属性必须是静态的,只不过说明它属于特定的类

根据定义,我们不能再对象中调用静态方法和属性,因此静态元素又被称为类变量和属性,因此我们不能再静态方法中使用伪变量 $this

class Person

{

const SEX = 'man';

private $name = 'test';

public static function getName()

{

// 在静态方法里面不可以获取 getAge $name 属性和方法,因为 getName() 是在类里可以获取的方法,

// 但是getAge $name 是在对象里获取到的方法和属性,对象是需要实例化的

return 'test';

}

public function getAge()

{

echo self::getName(); // getName() 是静态方法,是在类里可以获取到的

echo self::SEX; // SEX 是常量,是在类里面定义的

}

public function test()

{

echo $this->name;

echo self::SEX;

}

public function getThis()

{

var_dump($this);

}

public static function getStaticThis()

{

// 会报错

var_dump($this);

}

}

echo Person::SEX; // man

$person2 = new Person();

$person1 = new Person();

$person = new Person();

$person->getAge(); // test man

$person->test(); //test man

$person->getThis(); // object(Person)#3

$person->getStaticThis(); // Fatal error: Uncaught Error: Using $this when not in object context in /Users/long/php/test/index.php:35 Stack trace: #0 /Users/long/php/test/index.php(46): Person::getStaticThis()

56d06418f59e

图片.png

在类中,可以使用,self::method() 或者 $this->method(),但是不可以对属性使用此种方式。

class Person

{

const SEX = 'man';

public $name = 'test';

public function getAge()

{

return '12';

}

public function getThis()

{

var_dump(self::getAge());

var_dump($this->getAge());

var_dump($this::getAge());

}

public function getName()

{

// 不可以使用这种方式

var_dump(self::$name);

}

}

$person = new Person();

$person->getThis();

$person->getName(); // 报错

56d06418f59e

图片.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值