用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - php代码库

模拟Zend Framework、ThinkPHP中的连贯操作

2014-12-03 作者: php源代码大全举报

[php]代码库

<?php
class Test
{
    protected $options = array();

    //这里就是了, 通过判断调用的函数名, 如果存在, 那么设置参数, 返回自己 
    public function __call($func, $args)
    {
        if (in_array($func, array( 
            'form', 
            'field', 
            'join', 
            'order', 
            'where', 
            'limit', 
            '更多....'
        )))
        {
            $this->options[$func] = $args;
            return $this; //这里返回了本对象 
        }
    }
}
$test = new Test();
$test->form('test'); // 这样调用就相当于设置 $test->options['form'] = 'test'; 
//在ThinkPHP中这种连贯操作都是以find或者findAll结尾的. 
//所以前面这些方法的调用只是在设置查询的参数而已 
//在find或者findAll方法中, 是根据$this->options参数的不同执行不同的SQL 
//比如这样 
public function find() { 
$sql = \\"SELECT {$this->options['field']} FROM {$this->options['form']}\\"; 
$sql .= isset($this->options['where']) ? \\" WHERE {$this->options['where']}\\" : ''; 
// More  
echo $sql; 
}
//该片段来自于http://yuncode.net


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...