$db->where('test=1')->where('test=2')->order('test desc')->limit(10); $obj = new IMooc\Object(); $obj->title = "hello"; // 对不存在的属性进行赋值时,会调用Object中的__set方法 echo $obj->title; // 对不存在的属性进行取值时,会调用Object中的__get方法 // 调用未定义的方法,会调用__call方法 echo $obj->te(123, "dsa"); // 调用未定义的静态方法,会调用__callStatic方法 echo IMooc\Object::test123("hel1,123"); // 打印对象,调用__toString方法,打印返回的字符串 echo $obj; // 把一个对象当成一个方法,会调用__invoke方法 echo $obj("123"); /** * 工厂模式 * 好处:如果工厂方法变更,主调文件不用修改 */ $db = IMooc\Factory::createDatabase(); /** * 单列模式 * 不管创建多少个实例,连接到数据库都是一个连接 */ $db2 = IMooc\Database::getInstance(); $db2 = IMooc\Database::getInstance(); $db2 = IMooc\Database::getInstance(); /** * 注册模式 * */ $db2 = IMooc\Register::get('db1');
<?php /** SPL 库的使用 (PHP 标准库) SplStack SplQueue SplHeap SplFixedArray 等数据结构类 ArrayIterator AppendIterator Countable ArrayObject SPL 提供的函数 */ // Stack 先前后出 $stack = new SplStack(); $stack->push("data1"); $stack->push("data2"); echo $stack->pop(); echo $stack->pop(); // Queue 先前先出 $queue = new SplQueue(); $queue->enqueue("data1"); $queue->enqueue("data2"); echo $queue->dequeue(); echo $queue->dequeue(); // PHP 链式操作的实现 $db->where()->limit()->order(); // 传统 $db = new IMooc\Database(); $db->where("id=1"); $db->where("name=apeng"); $db->order("id desc"); $db->limit(10);