毕业设计网
开发环境 |

php类的封装和应用

类的封装和应用--(封装是把行为和属性隐藏起来,从而保护程序安全)
/*
public   /表示全局/,类内部外部子类都可以访问;
protected   /表示受保护的/,只有本类或子类或父类中可以访问;
private   /表示私有的/ ,只有本类内部可以使用;
 */

/*
 private
 (1)如果,对象类属性变量,被私有化,要输出的话可以通过 可以用,其他没有私有化的 对象类方法(自定义函数)--来访问对象类属性,在未被私有化类对象类方法中可以用来$this->变量名来访问 最后输出这个对象方法,
 (2)如果,对象类方法被,私有化。要输出的话,可以通过,在其他未私有化类方法中,来$this->方法()来访问并把 没私有化类方法输出
(3)如果,类被私有化,同样的道理,可以跨类访问,其他类的属性,用上面的方法。
 */

/* 某些特定操作的时候需要访问和赋值封装的类型,这个时候我们就需要其他的
函数帮我们完成这些操作,PHP为我们提供了个方法名:__set() , __get()
 
__set() 取得当前类中封装过私有属性或者方法重新执行或赋值操作(把封装的属性和方法,变成公共全局属性和方法 并赋值)
__set($name,$va)   读取 属性名 和属性值 并对其进行修改
__get() 取得当前类中封装过属性或方法并转换成共有属性 (把封装的属性和方法,变成公共全局属性和方法)
  */
 
  //=============例子==============================
  //-----------------------------------------------------------------------------------------------------------------------------
 //创建类
 class  MMpc {
 
 //创建私有化 类属性变量
 private $MMname ;      //私有化类属性变量 (只能在本类中使用)
 
 //初始化函数
function  __construct($MMname=""){   //接收对象传来的参数 
     return  $this->MMname=$MMname;   //定义$this->MMname =初始化 我的电脑
}
//创建类方法,函数  (用此非私有化函数取出私有话属性变量,并输出)
function  MMgsm(){           //创建类方法--自定义函数MMgsm()
     return  $this->MMname."已经打开电源,正在开机中........";     //返回内容

教程编写明仔QQ279999471     更多教程WWW.PHP100.COM   本文字教程思路来自于PHP100视频教程,让看视频教程慢的人 快速看文字学习!


}


//私有化类方法---------------------
  //建立私有化 类方法(自定义函数)
private function  MMsiyou(){           //创建(私有化)的类方法--自定义函数MMsiyou()
     return  $this->MMname."已经打开电源,正在开机中........";     //返回内容
}
//建立非私有化--类方法来取上面的 私有化类方法
function  MMfeisiyou(){           //创建(非私有化)的类方法--自定义函数MMfeisiyou()
     return  $this->MMsiyou();     //返回内容
}

 

//用__get可以访问私有化类属性变量--(并可以处理加点其他东西,但不许直接修改变量值)
function  __get($MMname){           //创建__GET类方法定义--类属性变量$MMname的植
     return  $this->MMname."-加点东西";     //返回内容
}


//用__set可以访问私有化类属性变量--(并可以做判断,修改变量值)
function  __set($n,$zhi){         //通过这个才获取有效 $pcdn1->MMname="修改过的-"   //创建__set类方法定义--可以修改类属性变量$MMname的植(有2个参数  接受 $pcdn1->$MMname=值)
 return  $this->$n=$zhi;     //返回内容
}
//也可以加判断
/* if($zhi=="修改过的-"){       //如果等于 则返回内容
 $this->$n=$zhi;     //返回内容
}
} */


 }
 
 //实例化对象
$pcdn1 = new MMpc("MM的电脑");  //把类进行对象实例化
//输出对象内容
echo "用类方法取出私有化类(属性)变量:".$pcdn1->MMgsm()."<br>";   //由于对象类(属性)变量私有话,所以通过访问 未私有化的函数来输出
echo "用类方法取出私有化类(方法)函数:".$pcdn1->MMfeisiyou()."<br>";   //由于对象类(方法)函数私有话,所以通过访问 未私有化的函数来输出
echo "用类__get方法取出私有化类(属性)变量:".$pcdn1->MMname."<br>";
//由于对象类(属性)变量私有话,所以通过访问 _get方法取出私有化类(属性)变量 (不能修改)


$pcdn1->MMname="修改过的-"; //发送修改的内容,到可修改__get中 在返回内容
echo "用类__set方法取出私有化类(属性)变量(并可以修改):".$pcdn1->MMname."<br>"."<br>";
//由于对象类(属性)变量私有话,所以通过访问 __set方法取出私有化类(属性)变量 (能修改)

以上是一部分介绍,如需要完整的资料或者如不符合您的要求,请联系技术人员qq:242219979咨询

上一篇:php类的继承和应用
下一篇:php对象中的$this关键字


版权所有 毕业设计网联系qq:242219979 © 2007-2022