php类的访问控制机制,PHP类的访问控制

PHP中类的方法也和C++通过关键字 private 、Public 、 protected 来控制的。下边是详细说明:

1、private

函数前使用关键字Private表示函数是私有的,私有的意思顾名思义,针对当前类私有,无论是他的子类还是他的实例都无法访问。

还是先看代码:

class Persion

{

function Persion()

{

echo "Persion OK";

}

private function test1()

{

echo "test1.......";

}

protected function test2()

{

echo "test2.....";

}

public function test3()

{

echo "test3....";

}

}

class Child extends Persion

{

function Child()

{

echo "Child OK".'
';

//调用父类的私有方法

Persion::test1();

}

}

$c = new Child;

//实例中调用私有方法

$c->test1();

?>

以上代码注释部分的调用都会引起报错,所以Private标记的函数只能在当前类中使用。

2、protected

函数用词关键字,表示,函数是受保护的,意思是指此函数只可以再当前函数和其子类中使用,在实例中无法调用。

代码:

class Persion

{

function Persion()

{

echo "Persion OK".'
';

//当前类中调用Protected方法

echo self::test2();

}

private function test1()

{

echo "test1.......
";

}

protected function test2()

{

echo "test2.....
";

}

public function test3()

{

echo "test3....
";

}

}

class Child extends Persion

{

function Child()

{

Persion::Persion();

echo "Child OK".'
';

//调用父类的Protected方法

Persion::test2();

Persion::test4();

}

}

$c = new Child;

//实例中调用Protected方法

$c->test2();

?>

运行代码可以看到,在当前类中调用和子类中调用都没有问题,而在实例中调用时会报错。

3、public

顾名思义,公有的方法,在任何地方(当前类、子类、实例)中都可以方便的调用

代码:

class Persion

{

function Persion()

{

echo "Persion OK".'
';

//当前类中调用Public方法

echo self::test3();

}

private function test1()

{

echo "test1.......
";

}

protected function test2()

{

echo "test2.....
";

}

public function test3()

{

echo "test3....
";

}

}

class Child extends Persion

{

function Child()

{

Persion::Persion();

echo "Child OK".'
';

//调用父类的Public方法

Persion::test3();

}

}

$c = new Child;

//实例中调用Public方法

$c->test3();

?>

运行代码可以看到,在任何地方调用没有任何问题。

本篇在了解PHP类的访问控制机制。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值