您的位置:首页 > 编程语言 > PHP开发

PHP5的72变:理解类中public,private,protected关键字-访问控制--第1变

2013-05-27 10:08 375 查看
php5 类的变量定义遵循一种访问控制:

public 表示全局,类内部外部子类都可以访问;

private表示私有的,只有本类内部可以使用;

protected表示受保护的,只有本类或子类或父类中可以访问;

<?php

class BaseClass {

public $public = 'public';

private $private = 'private';

protected $protected = 'protected';

function __construct(){

}

function print_var(){

print $this->public;echo '<br />';

print $this->private; echo '<br />';

print $this->protected; echo '<br />';

}

}

class Subclass extends BaseClass {

// public $public = 'public2';

protected $protected ='protected2';

function __construct(){

echo $this->protected;//可以访问,因为类中定义为受保护的,所以在本类或子类中可以,子类中还可以重复付值

echo '<br />';

echo $this->private;//error 因为是私有的只有在定义她的类baseclass中可以用

}

}

$obj1 = new BaseClass();

$obj1->print_var();

//echo $obj1->protected;//error 因为是受保护的,只有在本类内部或子类父类中可以调用

//echo $obj1->private;//error 同上私有的,只有在本类内调用

echo $obj1->public;

echo "<hr />";

$obj2 = new Subclass();

echo '<br />';

echo $obj2->public;echo '<br />';

echo $obj2->protected;

//echo $obj2->private;//error

//echo $obj2->protected;//error

?>

其实新手也可以这样理解:

public 相当于Var声明的~~整个页面随时可以修改

private 只能在所属类中操作.

protected 有继承关系的类内都可操作.

注意:

private,protected 声明的成员,在实例化后,对象是不能直接调用的。如:echo $obj1->protected;是错误的。

未完待续。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: