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


PHP ViewableData::castingHelperPair方法代码示例

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


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

示例1: obj

 /**
  * Return the object version of the given field/method.
  * @param string $fieldName The name of the field/method.
  * @param array $args The arugments.
  * @param boolean $forceReturnObject If true, this method will *always* return an object.  If there's
  * no sensible one available, it will return new ViewableData()
  * @return mixed;
  */
 public function obj($fieldName, $args = null, $forceReturnObject = false)
 {
     if (isset($_GET['debug_profile'])) {
         Profiler::mark("template({$fieldName})", " on {$this->class} object");
     }
     if ($args) {
         $identifier = $fieldName . ',' . implode(',', $args);
     } else {
         $identifier = $fieldName;
     }
     // Fix for PHP 5.3 - $args cannot be null
     if (is_null($args)) {
         $args = array();
     }
     if (isset($this->_object_cache[$identifier])) {
         $fieldObj = $this->_object_cache[$identifier];
     } else {
         if ($this->hasMethod($fieldName)) {
             $val = call_user_func_array(array(&$this, $fieldName), $args);
         } else {
             $val = $this->{$fieldName};
         }
         $this->_natural_cache[$identifier] = $val;
         if (is_object($val)) {
             $fieldObj = $val;
         } else {
             $helperPair = $this->castingHelperPair($fieldName);
             if (!$helperPair && $this->failover) {
                 $helperPair = $this->failover->castingHelperPair($fieldName);
             }
             $constructor = $helperPair['castingHelper'];
             if ($constructor) {
                 $fieldObj = eval($constructor);
                 if ($this->hasMethod('getAllFields')) {
                     $fieldObj->setValue($val, $this->getAllFields());
                 } else {
                     $fieldObj->setValue($val);
                 }
             }
         }
         $this->_object_cache[$identifier] = isset($fieldObj) ? $fieldObj : null;
     }
     if (!isset($fieldObj) && $forceReturnObject) {
         $fieldObj = new ViewableData();
     }
     if (isset($_GET['debug_profile'])) {
         Profiler::unmark("template({$fieldName})", " on {$this->class} object");
     }
     return isset($fieldObj) ? $fieldObj : null;
 }
开发者ID:racontemoi,项目名称:shibuichi,代码行数:58,代码来源:ViewableData.php


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