zl程序教程

您现在的位置是:首页 >  后端

当前栏目

php学习笔记数组的常用函数

PHP笔记学习数组 函数 常用
2023-06-13 09:14:28 时间
复制代码代码如下:

<?php
/*
*封装性:面向对象三大特性之一
*
*1.就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细节
*访问权限修饰符publicprotectedprivate
*private:私有的,用这个关键字修饰的成员,只能在对象内部访问(只有用$this访问)
*
*属性可以封装:
*只要一个变量,需要在多个方法使用,就将这个变量声明为成员属性,可以直接在这个对象中的所有方法中使用
*
*成员属性,相当于这个对象中的全局变量
*
*成员属性都会在方法中使用,成员属性值的变化其实就是在改变方法的执行行为,也就是改变了对象的功能
*
*成员属性的值如果不正常,方法执行的功能叶就不正常
*
*作用:不需要在对象外部改变或读取它的值
*1.封装
*再提供一个公有的方法(经过方法对对象成员属性进行赋值和取值就可以控制)
*
*
*方法也可以封装
*
*作用:
*1.使用private修饰使其只能在内部使用
*
*2.一个类中有100个方法,封装了95个(为另外5个服务的方法),只有5个方法可以使用
*
*100个成员属性,都让取值,不可以改值;或者只可改值,不可获取值//此种情况下使用以下方法比较方便
*和封装有关的魔术方法:
*
*__set();//是直接设置[私有的]成员属性值时,自动调用的方法
*__get();//是直接获取[私有的]成员属性值时,自动调用的方法
*__isset();//是直接使用isset()查看对象中私有属性是否存在时,自动调用这个方法
*__unset();//是直接使用unset()删除对象中私有属性时,自动调用的方法
*
*
*
*
*
*
*
*/
classPerson{
//x封装成员属性,不需要在对象外部改变
private$name;
private$age;
private$sex;
private__unset($proName){
unset($this->$proName);
}
//是直接查看对象中私有属性是否存在时,自动调用这个方法
//__isset($proName)的使用,$proName代表属性名
privatefunction__isset($proName){
returnisset($this->$proName);//isset()返回是否存在
}
function__construct($name,$age,$sex){
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
//当获取私有的成员属性时,自动调用此方法
privatefunction__get($proName)
{
//控制所获取的值
if($proName=="age"){
if($this-age>40)
return$this->age-10;
}
return$this->$proName;
}
//当设置私有的成员属性时,自动调用此方法
privatefunction__set($proName,$proValue){
//$proName表示成员属性名,$proValue表示成员属性值
//控制设置范围
if($proName=="age"){
if($proValue>100||$proValue<0)
return;
}
$this->$proName=$proValue;
}
//提供公有方法来设置成员属性的值
functionsetAge($age){
//控制年龄范围,增加安全性
if($age>100||$age<0)
return;
$this->age=$age;
}
//提供公有方法来获取成员属性的值
functiongetAge(){
//控制获取年龄的范围
if($this->age<30)
return$this->age;
elseif($this->age<40)
return$this->age-5;
elseif($this->age<50)
return$this->age;
else
return$this->age-15;
提供公有方法来}
functionsay(){
echo"我的名字:{$this->name},我的年龄:{$this->age},我的姓别:{$this->sex}<br>";
//访问封装过的run()方法
$this-run();
}
privatefunctionrun(){
echo"111111111111<br>"
}
functioneat(){
}
//析构方法
function__destruct(){
}
}
$p1=newPerson("zhangsan",25,"男");
$p2=newPerson;
$p3=newPerson;
//$p1->age=-50;//因为年龄在外部随意访问,所以成员属性药封装,才有安全性。
$p1->setAge(30);//通过方法来设置成员属性德值
$p1->getAge();//通过方法来获取成员属性德值
//通过添加家魔术方法__set($proName,$proValue)__get($proName),就可以直接调用成员属性了
$p1->say();//可以调用
$p1->run();//私有的方法不能直接调用
//删除$p1里面的name
unset($p1->name);
//判断name是否存在
if(isset($p1->name)){
echo"存在<br>";
}else{
echo"没有这个成员<br>";
}
?>

作者:代号极光
出处:http://zizhuyuan.cnblogs.com