php µÄ·´ÉäÏê½â¼°Ê¾Àý´úÂë

5年以前  |  阅读数:301 次  |  编程语言:PHP 

¡¡×i½uÔÚ¿´java±a³Ì˼Ïe£¬¿´µ½ÀaÐÍÐÅÏ¢ÕaÒ»Õ£¬½²µ½ÁËÀaµÄÐÅÏ¢ÒÔ¼°´ÉaµÄ¸ÅÄi¡£Ë³±aιÊÒ»ÏÂphpµÄ´Éa¶«Î÷¡£ÊÖ²aÊÇÕaÑu˵µÄ£º"PHP 5 ¾ßÓÐÍeÕuµÄ´Éa API£¬Ìi¼ÓÁ˶ÔÀa¡¢½Ó¿Ú¡¢º¯Êý¡¢½¨ºÍÀ(C)Õ¹½øÐдÏo¹¤³ÌµÄÄÜÁ¦¡£ ´ËÍa£¬´Éa API Ìa¹(C)Á˽¨À´È¡³oº¯Êý¡¢ÀaºÍ½¨ÖеÄÎĵµ×¢ÊÍ¡£"µ±È»ÊÖ²aÉÏ˵µÄÓÐÐ(C)³eÏo£¡ËuνµÄÄaeÏo˵°×¾ÍÊÇÄÜ»ñÈ¡¹ØÓÚÀa¡¢½*¨¡¢ÊoÐÔ¡¢²ÎÊýµÈµÄÏeϸÐÅÏ¢£¬°uÀ¨×¢ÊÍ! ÎÄ×Ö×ÜÊÇÄÇô¿ÝÔi£¬¾Ù¸oÀý×Ó


    class Foo {
      public  $foo = 1;
      protected $bar = 2;
      private  $baz = 3;

      /**
       * Enter description here ...
       */
      public function myMethod()
      {
        echo 'hello 2b';
      }
    }

    $ref = new ReflectionClass('Foo');
    $props = $ref->getProperties();
    foreach ($props as $value) {
      echo $value->getName()."\n";
    }

    //output
    //foo 
    //bar
    //baz 


ReflectionClass Õa¸oÀaµ»Øʱij¸oÀaµÄÏa¹ØµÄÐÅÏ¢£¬±ÈÈç ÊoÐÔ£¬½¨£¬ÃuÃu¿Õ¼a£¬ÊµÏÖÄÇÐ(C)½Ó¿ÚµÈ£¡ÉϸoÀý×ÓÖÐReflectionClass:: getProperties µ»ØÊÇ ReflectionProperty ¶ÔÏoµÄÊý×e¡£

ReflectionProperty Àa±¨¸aeÁËÀaµÄÊoÐÔµÄÏa¹ØÐÅÏ¢¡£±ÈÈç isDefault isPrivate isProtected isPublic isStaticµÈ£¬½¨getName ÊÇ»ñÈ¡ÊoÐÔµÄÃu³Æ£¡

ÒÔÉÏÊÇ»ñÈ¡ÊoÐԵģ¬»¹ÓлñÈ¡Àa½¨µÄ±ÈÈç


    class Foo {
      public  $foo = 1;
      protected $bar = 2;
      private  $baz = 3;

      /**
       * Enter description here ...
       */
      public function myMethod()
      {
        echo 'hello 2b';
      }
    }

    $ref = new ReflectionClass('Foo');
    $method = $ref->getMethod('myMethod');
    $method->invoke($ref->newInstance());

ReflectionClass::getMethod ÊÇ´ÊÇÒ»¸o ReflectionMethod ÀaÐÍ £¬ReflectionMethod Àa±¨¸aeÁËÒ»¸o½¨µÄÓйØÐÅÏ¢£¬±ÈÈç isAbstract isPrivate isProtected isPublic isStatic isConstructor£¬»¹ÓÐÒ»¸oÖØÒªµÄ½¨Invoke£¬InvokeArgs ¾ÍÊÇÖ´Ðн*¨£¡

ÆaËuµÄ¶ÔÏo¿ÉÒÔ¿´¿´ÊÖ²a£¬²»ÊǺÜÄÑ£¡

ÄÇ*´Éa¾¿¾¹ÓÐÄÄÐ(C)ÓÃ;£¿

´ÉaÊÇÒ»¸o¶¯Ì¬ÔËÐеĸÅÄi£¬×ÛºÏʹÓÃËuÃÇ¿ÉÓÃÀ´°iÖuÎÒÃÇÖÎoÆaËuÀa£¬½Ó¿Ú£¬½¨£¬ÊoÐÔ£¬½¨ºÍÀ(C)Õ¹¡£»¹¿É¹¹½¨Ä£Ê½£¬±ÈÈ綯̬´uÀi¡£ÔÚÒ»Ð(C)php¿o¼ÜÖÐʹÓôÉaÒ²ÊǺܾ­³££¬±ÈÈçkohana£¬yii£¬ÏÂÃaeÊÇkohana µÄʵÏÖmvcµÄ´uÂe£¬¾ÍÊÇÓõ½ÁË´Éa£¡


    // Start validation of the controller
    $class = new ReflectionClass(ucfirst(Router::$controller).'_Controller');
    // Create a new controller instance
    $controller = $class->newInstance();
    // Load the controller method
    $method = $class->getMethod(Router::$method);
    // Execute the controller method
    $method->invokeArgs($controller, $arguments);

ÉÏÃaeµÄ´uÂe¿ÉÒÔÇaÎu¿´µ½Õa¸o¿o¼ÜµÄÁ÷³Ì£¡Í¨¹ýRouter Æaʵ¾Í´¦ÀiurlµÄÀa£¬Í¨¹ýRouter¿ÉÒÔ»ñÈ¡Äĸo¿ØÖÆÆ÷¡¢Äĸo½¨£¡È»ºoÔÙÖ´Ðн¨£¡

ÒÔÉϾÍÊǶÔPHP *´ÉaµÄ×ÊÁÏÕuÀi£¬ºoÐø¼ÌÐø²¹³aÏa¹Ø×ÊÁÏ£¬Ð»Ð»´o¼Ò¶Ô±¾Õ¾µÄÖ§³Ö£¡

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
将二进制数据转为16进制以便显示
获取IMSI
获取IMEI
Java生成UUID
PHP自定义函数获取搜索引擎来源关键字的方法
让你成为最历害的git提交人
在Zeus Web Server中安装PHP语言支持
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Yii2汉字转拼音类的实例代码
Python 2与Python 3版本和编码的对比
php+ajax+json 详解及实例代码
php封装的page分页类完整实例
PHP设计模式之工厂模式与单例模式
php数组合并array_merge()函数使用注意事项
PHP实现简单爬虫的方法
php实现数组中索引关联数据转换成json对象的方法
wget使用技巧