首页 | 联系我们 | 叶凡网络官方QQ群:323842844
游客,欢迎您! 请登录 免费注册 忘记密码
您所在的位置:首页 > 新闻中心 > 行业新闻 > 正文

名扬互联:关于重载和类的自动加载

作者:cocomyyz 来源: 日期:2014-3-13 10:30:09 人气:0 加入收藏 评论:0 标签:

就像Java和COM那样.PHP5带来了强大的面向对象重载,PHP4中已经有了重载的语法来建立对于外部对象模型的映射.允许顺序员建立自定义的行为来访问属性和调用方法.

__set,重载可以通过__get.and__call几个特殊方法来进行.当Zend引擎试图访问一个成员并没有找到时,PHP将会调用这些方法.__get和__set代替所有对属性变量数组的访问.如果必要,例图1中.可以实现任何类型你想要的过滤.例如,脚本可以禁止设置属性值,开始时用一定的前缀或包括一定类型的值.

方法名和方法接收的参数将会传给__call方法,__call方法说明了如何调用未经定义的方法.调用未定义方法时.PHP传送__call值返回给未定义的方法.

User-leveloverloading

<?php

 classOverload

 {

     privat$properti=arrai;

     function__get$property_nam

     {

         ifisset$this->properties[$property_name]

         {

             return$this->properties[$property_name];

         }

         els

         {

             returnNULL;

         }

     }

$valu      function__set$property_name.

     {

         $this->properties[$property_name]=$value;

     }

$arg      function__call$function_name.

     {

         print"Invoke$function_nam\n";

         print"A rguments:";

         print_r$arg;

         returnPUE;

     }

 }

 $o=newOverload;

激活__set  //invok__set给一个不存在属性变量赋值.

 $o->dynaProp="DynamContent";

 //invok__get激活__get

 print$o->dynaProp."\n";

 //invok__call激活__call

"Zeev";  $o->dynaMethod"Leon".

?>

类的自动加载,PHP会演讲一个致命错误.解决方法就是添加一个类,当你尝试使用一个未定义的类时.可以用includ包括一个文件.终究你知道要用到哪个类.但是,PHP提供了类的自动加载功能,这可以节省编程的时间.当你尝试使用一个PHP没有组织到类,会寻找一个__autoload全局函数.如果存在这个函数,PHP会用一个参数来调用它,参数即类的名称.PHP会执行__autoload.脚本假设class_User.php中定义有User类..不管调用时是大写还是小写,例子图2说明了__autoload如何使用的.假设当前目录下每个文件对应一个类.当脚本尝试来发生一个类User实例.PHP将返回名称的小写.

Classautoloading

<?php

 //definautoloadfunction

 function__autoload$class

 {

     includ"class_".ucfirst$class.".php";

 }

 //useaclassthatmustbeautoload

 $u=newUser;

 $u->nam="Leon";

 $u->printNam;

?>


本文网址:http://www.mingyangnet.com/html/hangye/2049.html
读完这篇文章后,您心情如何?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
更多>>网友评论
发表评论
编辑推荐
  • 没有资料