PHP编程:php进修笔记 php中面向对象三大特征之一...
刚开始写页面程序,调试完书中的例子。然后就可以尝试编写留言板了, 复制代码 代码以下:<?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是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。 基础有没有对学习php没有太大区别,关键是兴趣。 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 当然这种网站的会员费就几十块钱。 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 Ps:以上纯属原创,如有雷同,纯属巧合 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年具体的记不清啦,囧。 做为1门年轻的语言,php一直很努力。 本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
页:
[1]
2