当前位置: 首页>>代码示例>>PHP>>正文


PHP Reflection::getPrototypes方法代码示例

本文整理汇总了PHP中Reflection::getPrototypes方法的典型用法代码示例。如果您正苦于以下问题:PHP Reflection::getPrototypes方法的具体用法?PHP Reflection::getPrototypes怎么用?PHP Reflection::getPrototypes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Reflection的用法示例。


在下文中一共展示了Reflection::getPrototypes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: _castParameters

 /**
  * Cast parameters
  *
  * Takes the provided parameters from the request, and attempts to cast them
  * to objects, if the prototype defines any as explicit object types
  * 
  * @param  Reflection $reflectionMethod 
  * @param  array $params 
  * @return array
  */
 protected function _castParameters($reflectionMethod, array $params)
 {
     $prototypes = $reflectionMethod->getPrototypes();
     $nonObjectTypes = array('null', 'mixed', 'void', 'unknown', 'bool', 'boolean', 'number', 'int', 'integer', 'double', 'float', 'string', 'array', 'object', 'stdclass');
     $types = array();
     foreach ($prototypes as $prototype) {
         foreach ($prototype->getParameters() as $parameter) {
             $type = $parameter->getType();
             if (in_array(strtolower($type), $nonObjectTypes)) {
                 continue;
             }
             $position = $parameter->getPosition();
             $types[$position] = $type;
         }
     }
     if (empty($types)) {
         return $params;
     }
     foreach ($params as $position => $value) {
         if (!isset($types[$position])) {
             // No specific type to cast to? done
             continue;
         }
         $type = $types[$position];
         if (!class_exists($type)) {
             // Not a class, apparently. done
             continue;
         }
         if ($value instanceof $type) {
             // Already of the right type? done
             continue;
         }
         if (!is_array($value) && !is_object($value)) {
             // Can't cast scalars to objects easily; done
             continue;
         }
         // Create instance, and loop through value to set
         $object = new $type();
         foreach ($value as $property => $defined) {
             $object->{$property} = $defined;
         }
         $params[$position] = $object;
     }
     return $params;
 }
开发者ID:ankitsapient,项目名称:testgithubankit,代码行数:55,代码来源:Server.php


注:本文中的Reflection::getPrototypes方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。