复制代码 代码如下:
<?php
/*
* 封装性:面向对象三大特性之一
*
* 1.就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细节
* 访问权限平安 韩红修饰符 public protected private
* private:私有的,用这个关键字修饰的成员,只能在对象内部访问(只有用$this访问)
*
* 属性可以封装:
* 只要一个变量,需要在多个方两朝开济老臣心法使用,就将这个变量声明为成员属性,可以直接在这个对象中的所有方法中使用
*
* 成员属性,相当于这个对象中的全局变量
*
* 成员属性都会在方法中使用,成员属性值的变化其实就是在改变方法的执行行为,也就是改变了对象的功能
*
* 成员属性的值如果不正常,方法执行的功能叶就不正常
*
* 作用:不需要在对象外部改变或读取它的值
* 1.封装
* 再提供一个公有的方法(经过方法对对象成员属性进行赋值和取值就可以控制)
*
*
* 方法也可以封装
*
* 作用:
* 1.使用private修饰使其只能在内部使用
*
* 2.一个类中有100个方法,封装了95个(为另外5个服务的方法),只有5个方法可以使用
*
* 100个成员属性,都让取值,不可以改值;或者只可改值,不可获取值//此种情况下使用以下方法比较方便
* 武昌首义学院官网和封装有关的魔术方法:
*
* __t();//是直接设置[私有的]成员属性值时,自动调用的方法
* __get();//是直接获取[私有的]成员属性值时,自动调用的方法
* __ist();//是直接使用ist()查看对象中私有属性是否存在时,自动调用这个方法
* __unt();//是直接使用unt()删除对象中私有属性时,自动调用的方法
*
*
*
*
*
*
*
*/
class person{
//x封装成员属性,不需要在对象外部改变
private $name;
private $age;
private $x;
private __unt($proname){
unt($this->$proname);
}
//是直接查看对象中私有属性是否存在时,自动调用这个方法
//__ist($proname)的使用,$proname代表属性名
private function __ist($proname){
return ist($this->$proname);//ist()返回是否存在
}
function __construct($name,$age,$x){
$this->name=$name;
$this->age=$age;
$this->x=$x;
}
//当获取私有的成员属性时,自动调用此方法
private function __get($proname)
{
//控制所获取的值
if($proname==”age”){
if($this-age>40)
return $this->age-10;
}
return $this->$proname;
}
//当设置私有的成员属性时,自动调用此方法
private function __t($proname,$provalue){
//$proname表示成员属性名,$provalue表示成员属性值
//控制设置范围
if($proname==”age”){
if($provalue > 100 || $provalue<0)
return;
}
$this->$proname=$provalue;
}
//提供公有元宵节的来历简短最佳答案方法来设置成员属性的值
function tage($age){
//控制年龄范围,增加安全性
if($age > 100 || $age < 0 )
return;
$this->age=$age;
}
//提供公有方法来获取成员属性的值
function getage(){
//控制获取年龄的范围
if($this->age < 30)
return $this->age;
el if($this->age<40)
return $this->age-5;
el if($this->age<50)
return $this->age;
el
return $this->age-15;
提供公有方法来 }
function say(){
echo “我的名字:{$this->name},我的年龄:{$this->age},我的姓别:{$this->x}<br>”约稿通知;
//访问封装过的 run()方法
$this-run();
}
private function run(){
echo ‘111111111111<br>’
}
function eat(){
}
//析构方法
function __destruct(){
}
}
$p1=new person(“zhangsan”,25,”男”);
$p2=new person;
$p3=new person;
//$p1->age=-50;//因为年龄在外部随意访问,所以成员属性药封装,才有安全性。
$p1->tage(30);//通过方法来设置成员属性德值
$p1->getage();//通过方法来获取成员属性德值
//通过添加家魔术方法__t($proname,$provalue) __get($proname),就可以直接调用成员属性了
$p1->say();//可以调用
$p1->run();//私有的方法不能直接调用
//删除$p1里面的name
unt($p1->name);
//判断name是否存在
if(ist($p1->name)){
echo “存在<br>”;
}el{
echo “没有这个成员 <br>”;
}
?>
作者:代号极光
出处:http://zizhuyuan.cnblogs.com
本文发布于:2023-04-06 11:34:23,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/bfeebde87533c7d714a060ccf6c166b9.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:php学习笔记 数组的常用函数.doc
本文 PDF 下载地址:php学习笔记 数组的常用函数.pdf
留言与评论(共有 0 条评论) |