PHP中的连贯操作

连贯操作有什么好处?就是多行操作可以在一行之内完成,要进行连贯操作的方法必须返回$this,也就是当前类的对象实例,然后就可以进行连贯操作了,具体的实现代码如下所示。
 1 <?php
 2 /**
 3  * php的连贯操作功能
 4  * @date 2016.3.31
 5  */
 6 namespace advanced;
 7 class Join {
 8     //姓名
 9     private $name;
10
11     //性别
12     private $sex;
13
14     //身高
15     private $height;
16
17     private $data = array();
18
19     public function __construct($info = array()) {
20         if (isset($info[‘name‘]) && !is_null($info[‘name‘])) $this->name = $info[‘name‘];
21         if (isset($info[‘sex‘]) && !is_null($info[‘sex‘])) $this->sex = $info[‘sex‘];
22         if (isset($info[‘height‘]) && !is_null($info[‘height‘])) $this->height = $info[‘height‘];
23
24         return $this;
25     }
26
27     /**
28      * 要进行连贯操作的方法必须返回$this,也就是当前类的对象实例,然后就可以进行连贯操作了
29      * @return \advanced\Join
30      */
31     public function formatInfo() {
32         foreach (get_object_vars($this) as $key => $val) {
33             if ($key == ‘data‘) continue;
34
35             $this->data[$key] = $val;
36         }
37
38         return $this;
39     }
40
41     public function getUserInfo() {
42         return implode(‘, ‘, $this->data);
43     }
44 }
45 /*
46 如果这样连贯操作,$data = new \advanced\Join(array(‘name‘ => ‘mayun‘, ‘sex‘ => ‘male‘, ‘height‘ => ‘170‘))->formatInfo()->getUserInfo();
47 会报如下的错误
48 Parse error: syntax error, unexpected T_OBJECT_OPERATOR
49 */
50 $join = new \advanced\Join(array(‘name‘ => ‘mayun‘, ‘sex‘ => ‘male‘, ‘height‘ => ‘170‘));
51 $data = $join->formatInfo()->getUserInfo();
52 echo $data;
53 ?>

运行join.php

输出mayun, male, 170

时间: 2024-10-12 16:58:02

PHP中的连贯操作的相关文章

PHP类连贯操作的实现方法

PHP中的连贯操作看起来的确很酷,也非常的方便代码的阅读,当然了必须是在OOP中用才行,在过程化的程序中,就没有必要用这种方法了.有实现这个方法的有用_CALL来实现的,而我下面写的这个例子,则不是用_call的,大家可以扩展一下吧. 下面写的这个SQL语句组合类,主要是用于学习的,如果有同学想拿去用,请再完善一下. /* * SQL语句组合实例类,始发文章web开发笔记 * www.chhua.com * 学习用,非专业类 * */ class sql{ private $sql=array(

关于php如何连贯操作类方法(以数据库为例)

关于php如何连贯操作类方法(以数据库为例) 1.下面是我写好的关于mysqli操作数据库的一些常用方法,大神请掠过 1 <?php 2 3 class Db 4 { 5 static private $config = [ 6 'datahost' => '', // 主机名 7 'dataname' => '', // 数据库名 8 'username' => '', // 用户名 9 'password' => '', // 用户密码 10 'charset' =>

第 39 章 ThinkPHP--SQL 连贯操作

本节课,我们将学习 ThinkPHP 模型基础类提供的连贯操作,通过连贯操作可以有效的 提供数据存取的代码清晰度和开发效率,并且支持所有的 CURD 操作. 一.连贯入门 连贯操作使用起来非常简单,比如查找到 id 为 1,2,3,4 中按照创建时间的倒序的前两 位. //连贯操作入门 $user = M('User'); var_dump($user->where('id in (1,2,3,4)')->order('date DESC')->limit(2)->select()

php连贯操作实现

我们在使用一些框架(如ThinkPHP)编码的时候,常用到这样的代码. M('User')->where(array('id'=>1))->field('name')->select(); 这样不仅有利于编码,而且也能让人"心情愉悦"呢.好了,不多说了.让我们看看如何实现的吧? <?php //数据库操作基类[PS:主要功能连贯功能实现] class Db{ //此属性定义要实现连贯操作的方法名 public $sql = array( "fie

连贯操作

连贯操作 案例:实现职员管理功能 ① 设计数据库 ② 创建UserController控制器 ③ 定义add方法 ④ 构建add.html模板到./Application/Admin/View/User,并更改链接地址 ⑤ 定义左侧导航链接 ⑥ 时间选择插件 1)导入js文件 2)在input文本框中添加onfocus事件 ⑦ 定义addOk方法实现接收与添加数据 首先创建一个UserModel.class.php模型 实例化模型,创建数据对象 ⑧ 实现index方法 1.连贯操作 where

TP访问数据库 和 连贯操作

<?php namespace Admin\Controller; use Think\Controller; class MainController extends Controller { public function showList() { echo "hello"; } public function test() { //数据访问 //造模型对象 $nation = D("Nation"); //查询 //$a = $nation->se

ThinkPHP教程_PHP框架之ThinkPHP(八)【CRUD与连贯操作】

一.CRUD ThinkPHP提供了灵活和方便的数据库操作方法,其中最基本的就是CRUD四个操作,只有掌握了最基本的CRUD操作,才能更好的运用更多实用的数据库操作方法 CRUD操作通常与连贯操作配合 1.创建操作 使用add()方法或addAll()方法 ·add()方法 可以直接传入要插入的数据,而且会在插入之前会过滤掉数据表中不存在的字段以及非法的数据类型(例如对象.数组等非标量数据).若当前表有主键自动增长并且插入记录成功的话,则返回所插入记录主键值 如果在执行add()操作之前已经创建

【转】PHP实现连贯操作

[第一种方案 __call] 我们在使用一些框架(如ThinkPHP)编码的时候,常用到这样的代码. M('User')->where(array('id'=>1))->field('name')->select(); 这样不仅有利于编码,而且也能让人"心情愉悦"呢.好了,不多说了.让我们看看如何实现的吧? <?php //数据库操作基类[PS:主要功能连贯功能实现] class Db{ //此属性定义要实现连贯操作的方法名 public $sql = a

SQL 连贯操作 [1]

一. 连贯入门 查找到 id 为 1,2,3,4 中按照创建时间的倒序的前两位. 在 Home/controller/UserController.class.php 下插入 1.连贯操作入门 $user = M('User'); var_dump($user->where('id in (1,2,3,4)')->order('date DESC')->limit(2)->select()); 得到的SQL查询语句为 PS:这里的 where.order 和 limit 方法都是连