|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你的确对PHP有兴趣,那么选择教材也是很重要的。Php5.0宣布以来为咱们供应了良多面向对象的特征,特别是为咱们供应了很多多少易用的魔术办法,这些魔术办法可让咱们简化咱们的编码,更好的设计咱们的体系。明天咱们就来熟悉下php5.0给咱们供应的魔术办法。 魔术函数
1。__construct()
实例化对象时被挪用,
当__construct和以类名为函数名的函数同时存在时,__construct将被挪用,另外一个不被挪用。
2。__destruct()
当删除一个对象或对象操作终止时被挪用。
3。__call()
对象挪用某个办法,
若办法存在,则直接挪用;
若不存在,则会去挪用__call函数。
4。__get()
读取一个对象的属性时,
若属性存在,则直接前往属性值;
若不存在,则会挪用__get函数。
5。__set()
设置一个对象的属性时,
若属性存在,则直接赋值;
若不存在,则会挪用__set函数。
6。__toString()
打印一个对象的时被挪用。如echo $obj;或print $obj;
7。__clone()
克隆对象时被挪用。如:$t=new Test();$t1=clone $t;
8。__sleep()
serialize之前被挪用。若对象对照大,想删减一点东东再序列化,可思索一下此函数。
9。__wakeup()
unserialize时被挪用,做些对象的初始化任务。
10。__isset()
检测一个对象的属性是不是存在时被挪用。如:isset($c->name)。
11。__unset()
unset一个对象的属性时被挪用。如:unset($c->name)。
12。__set_state()
挪用var_export时,被挪用。用__set_state的前往值做为var_export的前往值。
13。__autoload()
实例化一个对象时,假如对应的类不存在,则该办法被挪用。
魔术常量
1。__LINE__
前往文件中确当前行号。
2。__FILE__
前往文件的完全途径和文件名。假如用在包括文件中,则前往包括文件名。自 PHP 4.0.2 起,__FILE__ 老是包括一个相对途径,而在此之前的版本有时会包括一个绝对途径。
3。__FUNCTION__
前往函数称号(PHP 4.3.0 新加)。自 PHP 5 起本常量前往该函数被界说时的名字(辨别巨细写)。在 PHP 4 中该值老是小写字母的。
4。__CLASS__
前往类的称号(PHP 4.3.0 新加)。自 PHP 5 起本常量前往该类被界说时的名字(辨别巨细写)。在 PHP 4 中该值老是小写字母的。
5。__METHOD__
前往类的办法名(PHP 5.0.0 新加)。前往该办法被界说时的名字(辨别巨细写)。
(1)初识魔术办法
Php5.0宣布以来为咱们供应了良多面向对象的特征,特别是为咱们供应了很多多少易用的魔术办法,这些魔术办法可让咱们简化咱们的编码,更好的设计咱们的体系。明天咱们就来熟悉下php5.0给咱们供应的魔术办法。
3,__get() 当试图读取一个其实不存在的属性的时分被挪用。
假如试图读取一个对象其实不存在的属性的时分,PHP就会给失足误信息。假如在类里添加__get办法,而且咱们可以用这个函数完成相似java中反射的各类操作。
class Test
{
public function __get($key)
{
echo $key . " 不存在";
}
}
$t = new Test();
echo $t->name;
就会输入:
name 不存在
4,__set() 当试图向一个其实不存在的属性写入值的时分被挪用。 class Test
{
public function __set($key,$value)
{
echo '对'.$key . "附值".$value;
}
}
$t = new Test();
$t->name = "aninggo";
就会输入:
对 name 附值 aninggo
5,__call() 当试图挪用一个对象其实不存在的办法时,挪用该办法。 class Test
{
public function __call($Key, $Args)
{
echo "您要挪用的 {$Key} 办法不存在。你传入的参数是:" . print_r($Args, true);
}
}
$t = new Test();
$t->getName(aning,go);
法式将会输入:
您要挪用的 getName 办法不存在。参数是:Array
(
[0] => aning
[1] => go
)
6,__toString() 当打印一个对象的时分被挪用
这个办法相似于java的toString办法,当咱们直接打印对象的时分回挪用这个函数
class Test
{
public function __toString()
{
return "打印 Test";
}
}
$t = new Test();
echo $t;
运转echo $t;的时分,就会挪用$t->__toString();从而输入
打印 Test
7,__clone() 当对象被克隆时,被挪用
class Test
{
public function __clone()
{
echo "我被复制了!";
}
}
$t = new Test();
$t1 = clone $t;
法式输入:
我被复制了
在相册系统的开发上,因为采用的是团队分工合作方式,更让我明白了在一个团队之中,团队成员之间的交流沟通的重要性,如果没有很好的沟通交流,成员之间的任务没有分配好。 |
|