简单生活 发表于 2015-2-4 00:21:40

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:22

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

若天明 发表于 2015-2-4 13:46:18

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

仓酷云 发表于 2015-2-8 19:57:33

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

精灵巫婆 发表于 2015-2-23 02:10:34

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。

admin 发表于 2015-3-7 05:01:37

基础有没有对学习php没有太大区别,关键是兴趣。

海妖 发表于 2015-3-9 20:55:05

Ps:以上纯属原创,如有雷同,纯属巧合

灵魂腐蚀 发表于 2015-3-13 03:09:52

如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,

兰色精灵 发表于 2015-3-20 11:08:52

首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。

变相怪杰 发表于 2015-3-27 08:18:11

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。

柔情似水 发表于 2015-3-27 16:22:39

使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。

不帅 发表于 2015-4-4 23:54:04

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

再见西城 发表于 2015-4-11 06:09:09

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

冷月葬花魂 发表于 2015-5-4 13:09:23

Ps:以上纯属原创,如有雷同,纯属巧合

只想知道 发表于 2015-6-4 18:44:48

你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。

透明 发表于 2015-6-12 05:07:06

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

小魔女 发表于 2015-6-12 07:29:24

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

因胸联盟 发表于 2015-6-18 21:58:15

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

飘飘悠悠 发表于 2015-6-20 21:38:51

Ps:以上纯属原创,如有雷同,纯属巧合

小妖女 发表于 2015-6-21 08:17:29

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
页: [1]
查看完整版本: PHP网站制作之第十一节--重载 -- Classes and Object...