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


Posted in PHP onJune 13, 2011
<?php 
/* 
* 封装性:面向对象三大特性之一 
* 
* 1.就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细节 
* 访问权限修饰符 public protected private 
* private:私有的,用这个关键字修饰的成员,只能在对象内部访问(只有用$this访问) 
* 
* 属性可以封装: 
* 只要一个变量,需要在多个方法使用,就将这个变量声明为成员属性,可以直接在这个对象中的所有方法中使用 
* 
* 成员属性,相当于这个对象中的全局变量 
* 
* 成员属性都会在方法中使用,成员属性值的变化其实就是在改变方法的执行行为,也就是改变了对象的功能 
* 
* 成员属性的值如果不正常,方法执行的功能叶就不正常 
* 
* 作用:不需要在对象外部改变或读取它的值 
* 1.封装 
* 再提供一个公有的方法(经过方法对对象成员属性进行赋值和取值就可以控制) 
* 
* 
* 方法也可以封装 
* 
* 作用: 
* 1.使用private修饰使其只能在内部使用 
* 
* 2.一个类中有100个方法,封装了95个(为另外5个服务的方法),只有5个方法可以使用 
* 
* 100个成员属性,都让取值,不可以改值;或者只可改值,不可获取值//此种情况下使用以下方法比较方便 
* 和封装有关的魔术方法: 
* 
* __set();//是直接设置[私有的]成员属性值时,自动调用的方法 
* __get();//是直接获取[私有的]成员属性值时,自动调用的方法 
* __isset();//是直接使用isset()查看对象中私有属性是否存在时,自动调用这个方法 
* __unset();//是直接使用unset()删除对象中私有属性时,自动调用的方法 
* 
* 
* 
* 
* 
* 
* 
*/ 
class Person{ 
//x封装成员属性,不需要在对象外部改变 
private $name; 
private $age; 
private $sex; 
private __unset($proName){ 
unset($this->$proName); 
} 
//是直接查看对象中私有属性是否存在时,自动调用这个方法 
//__isset($proName)的使用,$proName代表属性名 
private function __isset($proName){ 
return isset($this->$proName);//isset()返回是否存在 
} 
function __construct($name,$age,$sex){ 
$this->name=$name; 
$this->age=$age; 
$this->sex=$sex; 
} 
//当获取私有的成员属性时,自动调用此方法 
private function __get($proName) 
{ 
//控制所获取的值 
if($proName=="age"){ 
if($this-age>40) 
return $this->age-10; 
} 
return $this->$proName; 
} 
//当设置私有的成员属性时,自动调用此方法 
private function __set($proName,$proValue){ 
//$proName表示成员属性名,$proValue表示成员属性值 
//控制设置范围 
if($proName=="age"){ 
if($proValue > 100 || $proValue<0) 
return; 
} 
$this->$proName=$proValue; 
} 
//提供公有方法来设置成员属性的值 
function setAge($age){ 
//控制年龄范围,增加安全性 
if($age > 100 || $age < 0 ) 
return; 
$this->age=$age; 
} 
//提供公有方法来获取成员属性的值 
function getAge(){ 
//控制获取年龄的范围 
if($this->age < 30) 
return $this->age; 
else if($this->age<40) 
return $this->age-5; 
else if($this->age<50) 
return $this->age; 
else 
return $this->age-15; 
提供公有方法来 } 
function say(){ 
echo "我的名字:{$this->name},我的年龄:{$this->age},我的姓别:{$this->sex}<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->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 相关文章推荐
Mysql的常用命令
Oct 09 PHP
php下网站防IP攻击代码,超级实用
Oct 24 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 PHP
PHP--用万网的接口实现域名查询功能
Dec 13 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
PHP结合Jquery和ajax实现瀑布流特效
Jan 07 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
php使用curl代理实现抓取数据的方法
Feb 03 PHP
PHP中Trait及其应用详解
Feb 14 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
Apr 21 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
Nov 13 PHP
PHP安全之register_globals的on和off的区别
Jul 23 PHP
PHP中的函数嵌套层数限制分析
Jun 13 #PHP
PHP5中新增stdClass 内部保留类
Jun 13 #PHP
php中使用Akismet防止垃圾评论的代码
Jun 10 #PHP
php中通过虚代理实现延迟加载的实现代码
Jun 10 #PHP
php获取后台Job管理的实现代码
Jun 10 #PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
Jun 10 #PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
Jun 10 #PHP
You might like
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
PHP的博客ping服务代码
2012/02/04 PHP
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
php上传图片存入数据库示例分享
2014/03/11 PHP
php字符串截取函数用法分析
2014/11/25 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
XP折叠菜单&amp;仿QQ2006菜单
2006/12/16 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
fetch 使用及如何接收JS传值
2017/11/11 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
vue中轮训器的使用
2019/01/27 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
python实现电子书翻页小程序
2019/07/23 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
畜牧兽医本科生的自我评价
2014/03/03 职场文书
高中生逃课检讨书
2014/10/10 职场文书
学生退学证明
2015/06/23 职场文书
学校远程教育工作总结
2015/08/11 职场文书
丧事答谢词大全
2015/09/30 职场文书
2019中小学生安全过暑期倡议书
2019/06/24 职场文书
详解Java实践之建造者模式
2021/06/18 Java/Android