仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1043|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网站制作之php5魔术函数、魔术常量

[复制链接]
爱飞 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:51:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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;
  法式输入:
  我被复制了

  
在相册系统的开发上,因为采用的是团队分工合作方式,更让我明白了在一个团队之中,团队成员之间的交流沟通的重要性,如果没有很好的沟通交流,成员之间的任务没有分配好。
兰色精灵 该用户已被删除
沙发
发表于 2015-2-4 06:31:14 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
变相怪杰 该用户已被删除
板凳
发表于 2015-2-5 11:39:21 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
冷月葬花魂 该用户已被删除
地板
发表于 2015-2-11 14:24:28 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
深爱那片海 该用户已被删除
5#
发表于 2015-2-27 14:43:19 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
蒙在股里 该用户已被删除
6#
发表于 2015-3-7 08:22:21 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
7#
发表于 2015-3-9 15:22:43 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
只想知道 该用户已被删除
8#
发表于 2015-3-14 01:52:26 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
分手快乐 该用户已被删除
9#
发表于 2015-3-17 19:08:33 | 只看该作者
做为1门年轻的语言,php一直很努力。
再现理想 该用户已被删除
10#
发表于 2015-3-20 15:52:31 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
admin 该用户已被删除
11#
发表于 2015-3-21 11:25:02 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
乐观 该用户已被删除
12#
发表于 2015-3-27 20:08:31 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
谁可相欹 该用户已被删除
13#
发表于 2015-4-15 05:58:17 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
老尸 该用户已被删除
14#
发表于 2015-4-27 23:09:44 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
愤怒的大鸟 该用户已被删除
15#
发表于 2015-6-4 22:13:37 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
若天明 该用户已被删除
16#
发表于 2015-6-11 12:34:03 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
因胸联盟 该用户已被删除
17#
发表于 2015-6-28 21:26:04 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
小妖女 该用户已被删除
18#
发表于 2015-6-30 00:30:59 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
活着的死人 该用户已被删除
19#
发表于 2015-7-7 13:41:56 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-22 13:49

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表