duanfei9278 2014-11-17 12:27
浏览 45

特征中非静态方法的链式静态方法

i have trait like this

namespace Files;

trait Upload {

   //  name of input form
   public $inputName;
   // directory that you chose to upload file
   public $directory;
   //uploaded file name
   public $filneName;
   public $fullUploadedAdress;
   //uploaded file extention
   public $ext;
   //uploaded file size
   public $fileSize;
   // errors
   public $error;

   public  function Input ( $inputName )
   {
          //RETURN NAME OF UPLOAD FORM INPUT
          $this->inputName = $inputName;
          return $this;
   }
}

and another class like this

namespace RequestResponse;

class SetAndGetMethod
{
   use \Files\Upload;

   static protected $uploadInputName;
   protected static $onlyInstance;

   function __construct () { }

   public static function __callStatic ( $methodName, $args )
   {
          if ( preg_match ( '~^(post|get|request|file)([a-z|A-Z])(.*)$~', $methodName, $matches ) ) {
                 $property = strtolower ( $matches[ 1 ] );
                 $inputName = $matches[ 2 ] . $matches[ 3 ];
                 if ( !method_exists ( __CLASS__, $property ) ) {
                        throw new \Exception( 'Property ' . $property . ' not exists' );
                 }
                 switch ( $matches[ 1 ] ) {
                        case 'post':
                               return self::post ( $inputName );
                        case 'get':
                               return self::get ( $inputName );
                        case 'request':
                               return self::request ( $inputName );
                        case 'file':
                               return self::request ( $inputName );
                        case 'default':
                               throw new \eimaException ( 'Method ' . $methodName . ' not exists' );
                 }
          }
   }


   protected static function getself ()
   {
          if ( static::$onlyInstance === null ) {
                 static::$onlyInstance = new self;
          }
          return static::$onlyInstance;
   }


   public static function file ( $property )
   {
           self::$uploadInputName = $property;
          new self;
   }

}

when i call my fileUpload method with setters and chain this method to my trit i get this error

Input::fileUpload()->Input('Upload');

Fatal error: Call to a member function Input() on a non-object in C:\wamp\www\Framework\protected\controller\Home_Controller.php on line 27

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
    • ¥15 java写代码遇到问题,求帮助
    • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
    • ¥15 有了解d3和topogram.js库的吗?有偿请教
    • ¥100 任意维数的K均值聚类
    • ¥15 stamps做sbas-insar,时序沉降图怎么画
    • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
    • ¥15 关于#Java#的问题,如何解决?
    • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
    • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计