|void
     */
    public function __call($methodName, $argv)
    {
        //get data
        if(preg_match('/^get(.*)$/', $methodName, $aTmp)) {
            //ignore parameter

            return $this->__get($this->getRealFieldName($aTmp[1]));
        }

        //set data
        if(preg_match('/^set(.*)$/', $methodName, $aTmp)) {
            if(count($argv) != 1) {
                throw new Exception('Only parameter');
            }
            return $this->__set($this->getRealFieldName($aTmp[1]), $argv[0]);
        }

        throw new Exception(get_class($this) . ':' . $methodName . 'not extents');
    }

    /**
     *
     * @param string $str
     * @return string
     */
    private function getRealFieldName($str)
    {
        $fieldName = preg_replace('/([A-Z])/', '_${1}', lcfirst($str));
        return strtolower($fieldName);
    }
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注