PHP中的连贯操作
2016-03-31 17:27
288 查看
连贯操作有什么好处?就是多行操作可以在一行之内完成,要进行连贯操作的方法必须返回$this,也就是当前类的对象实例,然后就可以进行连贯操作了,具体的实现代码如下所示。
<?php /** * php的连贯操作功能 * @date 2016.3.31 */ namespace advanced; class Join { //姓名 private $name; //性别 private $sex; //身高 private $height; private $data = array(); public function __construct($info = array()) { if (isset($info['name']) && !is_null($info['name'])) $this->name = $info['name']; if (isset($info['sex']) && !is_null($info['sex'])) $this->sex = $info['sex']; if (isset($info['height']) && !is_null($info['height'])) $this->height = $info['height']; return $this; } /** * 要进行连贯操作的方法必须返回$this,也就是当前类的对象实例,然后就可以进行连贯操作了 * @return \advanced\Join */ public function formatInfo() { foreach (get_object_vars($this) as $key => $val) { if ($key == 'data') continue; $this->data[$key] = $val; } return $this; } public function getUserInfo() { return implode(', ', $this->data); } } /* 如果这样连贯操作,$data = new \advanced\Join(array('name' => 'mayun', 'sex' => 'male', 'height' => '170'))->formatInfo()->getUserInfo(); 会报如下的错误 Parse error: syntax error, unexpected T_OBJECT_OPERATOR */ $join = new \advanced\Join(array('name' => 'mayun', 'sex' => 'male', 'height' => '170')); $data = $join->formatInfo()->getUserInfo(); echo $data; ?>
运行join.php
输出mayun, male, 170
相关文章推荐
- php检查漏洞防护补丁-防护XSS,SQL,文件包含等多种高危漏洞
- ThinkPHP处理海量数据分表机制详细代码
- php输出json格式数据的例子
- ZendFramework-1.12.17
- PHP C扩展初探
- yii框架开启debug和gii
- matplotlib-绘制精美的图表
- php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
- yii报错400
- sphinx使用步骤
- php中常用的运算符
- php programmer should know?
- update the gedit for php programming(searched not try yet)
- 127报错解决方法
- PHP缓存Xcache安装
- laravel多环境配置(local,testing,production)
- thinphp下拉获取更多瀑布流效果
- php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法
- phpcms二次开发_创建功能模块
- php mvc 框架演示