php class方法使用,php类属性方法的调用

在学习过程中,我发现大多数人对于类的属性和方法的理解都不是很准确,这里我写下我的一些认识.

在类中,变量(也称为"属性"),函数(也称为"方法"),都是类的成员.

除了访问控制符(private public

protected )​还可以在写方法或者属性时,使用static关键字,将其声明为静态方法/属性.

那么问题来了,当你需要调用静态属性/方法怎么办?

使用​self::方法/属性名:

class aaa{

public static $a = 1;

public $b = 2;

public static function

xxx(){

return 111;

}

public function

xxx1(){

$c =

self::xxx();

$c1 =

self::$a;

var_dump($c);

var_dump($c1);

}

}

$bbb = new aaa();

$bbb->xxx1();

​$ccc =

aaa::xxx();

$ccc1 =

aaa::$a;

var_dump($ccc);

var_dump($ccc1);

可以看到​,静态属性或者方法在类的内部调用,用的是self::方法名/属性名(属性名不加$会报错)

在类的外部调用方法是类名::方法名/属性名​.(属性名不加$会报错)

那么非静态的方法/属性怎么调用呢?

其实这里也可以从上例中看到,非静态的方法在类的内部是用$this->方法名,$this在类的实例化的时候可用,

而在外部调用的时候需要先实例化.然后通过:

$aaa = new aaa();

$aaa->方法名;

非静态的属性在类的内部调用用$this->属性名,注意,这里的属性比如上例中的$b,不能加$,应该写$this->b,否则会报错.

在类的外部调用,​先实例化,

$aaa = new aaa();

$aaa->b;//这里的b还是不能加$,否则会报如下错误:

Notice: Undefined variable: b in

E:\xampp\htdocs\PhpProject1\newEmptyPHP.php on line

14Fatal error:

Cannot access empty property in

E:\xampp\htdocs\PhpProject1\newEmptyPHP.php on line

14​

P.S.

关于属性什么时候加$什么时候不加$,实在记不住就记得当有->符号的时候,没有$,前面是::,要加$.  ;)​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值