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
相关文章
- PHP笔记——文件信息获取、文件删除
- php new reflectionclass,PHP: ReflectionClass – Manual
- 安装安装Linux下的64位PHP(linux64位php)
- 重新启动:在Linux下恢复PHP服务(linux重启php服务)
- 驱动MySQL驱动加载:一种基于PHP的解决方案(php加载mysql)
- 学习PHP玩转MySQL数据库(php操作mysql方法)
- 探寻Linux下PHP路径之旅(linux查看php路径)
- Linux下打开PHP文件的实用技巧(linux打开php文件)
- Linux下如何调试PHP程序(linux调试php)
- MySQL实现PHP数组存储的效果(mysql存储数组php)
- Linux下如何快速部署PHP环境(linux如何部署php)
- MySQL和PHP:构建更先进的开发体系(mysql 和php)
- PHP中的加密功能
- 亲密接触PHP之PHP语法学习笔记1
- PHP之变量、常量学习笔记
- Nginx安装笔记(含PHP支持、虚拟主机、反向代理负载均衡)
- php学习笔记之函数声明
- php学习笔记面向对象的构造与析构方法
- php入门学习知识点一PHP与MYSql连接与查询
- PHP学习笔记用户注册模块用户类以及验证码类
- PHP面向对象学习笔记之二生成对象的设计模式
- php另类上传图片的方法(PHP用Socket上传图片)
- php学习笔记之面向对象