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类的访问控制机制。。。