php中的访问修饰符的学习:
实例:
<?php
//php访问修饰符
class Person{
//名字
public $name;
//年龄
protected $age;
//工资薪水
private $xinshui;
//person类的构造方法
public function __construct($name,$age,$xinshui){
$this->name=$name;
$this->age=$age;
$this->xinshui=$xinshui;
}
//获取薪水的public方法
public function getXinshui(){
###########添加访问条件#############
return $this->xinshui;
}
//设置年龄的方法
public function setAge($age){
#############添加设置的条件############
$this->age=$age;
}
//获取年龄的方法
public function getAge(){
return $this->age;
}
}
#1.public 修饰的变量可以在全局,继承类,本类中进行访问
$p1=new Person("孙悟空",20,1000);
echo "public修饰的变量可以在全局,继承类,本类中进行访问:".$p1->name."<br/>";
echo "private修饰符下用get方法访问工资薪水:".$p1->getXinshui()."<br/>";
#protected修饰符下用get方法设置年龄:
$p1->setAge(100);
echo "protected修饰符下用get方法访问年龄:".$p1->getAge();
?>
要点:
1.php中的访问修饰符有三个:public protected private
2.三个修饰符修饰 可以约束变量的访问的范围:
public 全局可以访问 继承类可以访问 本类中可以访问
protected 全局不可访问 继承类可以访问 本类中可以访问
private 全局不可访问 继承类不可访问 本类中可以访问
3.因为限制了访问,所以要进行访问的时候就需要通过公有的方法进行访问。
设置的原因是因为:可以在函数中添加一些约束,如案例中所示:如果要查看此人的薪水,就需要输入用户名和密码才能访问。
所以根据这点可以说明添加了getset方法,是数据变得更加的安全。
<?php
//1.php中方法如果没有访问修饰符,默认的为public
//2.php中属性如果没有访问修饰符,是不可以的,var是php4中使用的公共变量,不推荐使用
//3.php函数之间调用需要使用$this关键字,在同一个类中,什么修饰符的都能调用。
//4.function test11(){ function test12(){
//
// $this->test12(); }
//}
?>
魔术方法:同get,set方法一样,是用来获取私有的属性的,但是现在已经不推荐使用了。