仓酷云

标题: PHP网站制作之第十一节--重载 -- Classes and Object... [打印本页]

作者: 简单生活    时间: 2015-2-4 00:21
标题: PHP网站制作之第十一节--重载 -- Classes and Object...
学习了六个多月PHP了,还是个新手,在这里受到了很多人的帮助,谢谢你们!object|php5   | = 本文为Haohappy读<<Core PHP Programming>>
| = 中Classes and Objects一章的笔记
| = 翻译为主+团体心得
| = 为防止能够产生的不用要的费事请勿转载,感谢
| = 接待品评斧正,但愿和一切PHP喜好者配合前进!
+-------------------------------------------------------------------------------+
*/

第十一节--重载

PHP4中已有了重载的语法来创立关于内部对象模子的映照,就像Java和COM那样. PHP5带来了壮大的面向对象重载,答应法式员创立自界说的行动来会见属性和挪用办法.

重载可以经由过程__get, __set, and __call几个特别办法来停止. 当Zend引擎试图会见一个成员并没有找到时,PHP将会挪用这些办法.

在例6.14中,__get和__set取代一切对属性变量数组的会见. 假如需要,你可以完成任何类型你想要的过滤. 例如,剧本可以制止设置属性值, 在入手下手时用必定的前缀或包括必定类型的值.

__call办法申明了你若何挪用未经界说的办法. 你挪用不决义办法时,办法名和办法吸收的参数将会传给__call办法, PHP传递__call的值前往给不决义的办法.

Listing 6.14 User-level overloading
<?php
class Overloader
{
private $properties = array();

function __get($property_name)
{
if(isset($this->properties[$property_name]))
{
return($this->properties[$property_name]);
}
else
{
return(NULL);
}
}

function __set($property_name, $value)
{
$this->properties[$property_name] = $value;
}

function __call($function_name, $args)
{
print("Invoking $function_name()<br>n");
print("Arguments: ");
print_r($args);

return(TRUE);
}
}
$o = new Overloader();

//invoke __set() 给一个不存在的属性变量赋值,激活__set()
$o->dynaProp = "Dynamic Content";

//invoke __get() 激活__get()
print($o->dynaProp . "<br>n");

//invoke __call() 激活__call()
$o->dynaMethod("Leon", "Zeev");
?>
  也或许是因为我还没有真正的学到深处吧,说实在的,PHP中的很多高级点的应用,如PHP类、PHP函数基本还是不懂吧!
作者: 爱飞    时间: 2015-2-4 12:30
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
作者: 若天明    时间: 2015-2-4 13:46
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者: 仓酷云    时间: 2015-2-8 19:57
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
作者: 精灵巫婆    时间: 2015-2-23 02:10
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: admin    时间: 2015-3-7 05:01
基础有没有对学习php没有太大区别,关键是兴趣。
作者: 海妖    时间: 2015-3-9 20:55
Ps:以上纯属原创,如有雷同,纯属巧合
作者: 灵魂腐蚀    时间: 2015-3-13 03:09
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
作者: 兰色精灵    时间: 2015-3-20 11:08
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 变相怪杰    时间: 2015-3-27 08:18
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者: 柔情似水    时间: 2015-3-27 16:22
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 不帅    时间: 2015-4-4 23:54
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者: 再见西城    时间: 2015-4-11 06:09
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者: 冷月葬花魂    时间: 2015-5-4 13:09
Ps:以上纯属原创,如有雷同,纯属巧合
作者: 只想知道    时间: 2015-6-4 18:44
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: 透明    时间: 2015-6-12 05:07
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
作者: 小魔女    时间: 2015-6-12 07:29
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者: 因胸联盟    时间: 2015-6-18 21:58
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
作者: 飘飘悠悠    时间: 2015-6-20 21:38
Ps:以上纯属原创,如有雷同,纯属巧合
作者: 小妖女    时间: 2015-6-21 08:17
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2