php中访问控制_php中对属性或方法的访问控制的介绍(代码示例)

本篇文章给大家带来的内容是关于php中对属性或方法的访问控制的介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

PHP中对属性或方法的访问控制,是通过在前面添加关键字public(公有)、protected(受保护)或

private(私有)来实现的。被定义为public的类成员可以在任何地方被访问,被定义为protected的类成员则可以被其自身以及其子类和父类访问。被定义为private的类成员则只能被其定义所在的类访问。

类属性必须定义为public、protected或private。如果用var定义,则被视为public。子类可以修改基类public和protected的属性的值。<?php

class A{

var $a="a";

protected $b="b";

private $c="c";

function printVar(){

echo $this->a.";".$this->b.";".$this->c.";"."\n";

}

}

class B extends A{

public $a="aa";

protected $b="bb";

private $c="cc";

}

$a=new A();

$a->printVar();

$b=new B();

$b->printVar();

?>

类的必须定义为public、protected或private。如果未指定则视为public。子类可以覆盖基类public和protected的函数。<?php

class A{

public function fa(){

echo "A->fa\n";

}

protected function fb(){

echo "A->fb\n";

}

private function fc(){

echo "A->fc\n";

}

function showFoo(){

$this->fa();

$this->fb();

$this->fc();

}

}

class B extends A{

function fa(){

echo "B->fa\n";

}

protected function fb(){

echo "B->fb\n";

}

private function fc(){

echo "B->fc\n";

}

}

$a=new A();

$a->showFoo();

$b=new B();

$b->showFoo();

?>

同一个类的对象,即使不是同一个实例也可以互相访问对方的私有与受保护成员,因为这些对象的内部具体实现的细节都是已知的。<?php

class A

{

private $a;

public function __construct($a)

{

$this->a = $a;

}

private function fa()

{

echo 'private method fa.';

}

public function foo(A $other,$v)

{

$other->a = $v;

var_dump($other->a);

$other->fa();

}

}

$a = new A('a');

$aa=new A('aa');

$a->foo($aa,'newA');

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值