get_set.php 类的访问控制

来源:互联网 发布:怎么找投资知乎 编辑:程序博客网 时间:2024/05/21 10:33

6.2.6 类的访问控制
在PHP5 中,引入了类的访问控制符,这样可以控制类的属性和方法的可见性。在PHP5
中支持以下3 种访问控制符。
(1)public 控制符。该控制符是默认的,如果不指定一个属性的访问控制,则默认是
public。public 表示该属性和方法在类的内部或者外部都可以被直接访问。
第6 章 PHP 与面向对象程序设计 191
(2)private 控制符。该控制符说明属性或者方法只能够在类的内部进行访问。如果没有
使用__get()和__set()方法,则可能会对所有的属性都使用这个关键字,也可以选择使得部分
方法为私有的。注意,私有属性和方法不能被继承。
(3)protected 控制符。该控制表示被标记的属性或者方法只能在类的内部进行访问。它
也存在于任何子类中。
下面的代码添加了访问控制符:
class classname
{
public $myAttrib; //定义属性
public function __get($attribName) //获取属性值的函数
{
return $this->$ attribName; //返回该属性值
}
public function __set($attribName,$value) //设置属性值的函数
{
$this->$attribName=$value; //设置属性值
}
}
上述代码中,每个类成员都具有一个访问修饰符,说明它们是公有的还是私有的。可以
不添加public 关键字,因为它是默认的控制符。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> get_set.php </title>
  <meta charset="UTF-8">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
 </head>

 <body>
 <?php
class classname
{
    private $myAttrib; //定义属性
 
 function __get($attribName) //获取属性值的函数
 {
  echo "get $attribName:{$this->$attribName}<br>";
 return $this->$attribName; //返回该属性值
 }
 function __set($attribName,$value) //设置属性值的函数
 {
  echo "set $attribName:{$value}<br>";
 $this->$attribName=$value; //设置属性值
 }
 
}

$newclass=new classname(); //创建一个类classname 实例
$newclass-> myAttrib="小马";
$myVal=$newclass-> myAttrib;
var_dump($myVal);
?>
 </body>
</html>

set myAttrib:小马
get myAttrib:小马

string '小马' (length=6)



0 0