PHP链式操作的实现原理

在一个类中有多个方法,当你实例化这个类,并调用多个方法,类似:hello($value)->page('Page Two')->json();

<?php
class hello{
private $value;

public function __construct($value){
$this->value = $value;
}

public function page($title){
$this->value['content'] = $title;
return $this;
}

public function data(){
return $this->value;
}

public function json(){
echo json_encode($this->value);
}

public function html(){
print_r($this->value;)
}
}

写入数据测试一下:

// 测试数据
$value = array('title'=>'Hello world!');

// 链式方法一
$hello = new hello($value);
$hello->page('Page One')->html();

除了上面这种链式样式外,我们在如Lavarel中还会见到下面这种:

// 链式方法二
hello($value)->page('Page Two')->json();

// 增加的代码
function hello($str){
return new hello($str);
}

转载请注明出处:https://www.onexin.net/php-chain-operation/

随机文章:

1、用C/C++扩展你的PHP 为你的php增加功能
https://www.onexin.net/cc-extensions-your-php-to-add-functionality-to-your-php/

2、为什么您要开独立网上商店的呢?需要代建网店,商城,购物平台请看这里^^
https://www.onexin.net/why-do-you-want-to-open-an-independent-online-store-it-need-to-build-on-behalf-of-the-shop-mall-shopping-platform-see-here/

3、网络图形效果探索(二)
https://www.onexin.net/network-graphics-to-explore-b/

4、5款纯div+css制作的弹出菜单(标准且无js)(三)
https://www.onexin.net/5-div-css-js/

5、给Laravel取个好听的中文名字吧
https://www.onexin.net/laravel-chinese-name/

Leave a Reply