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中还会见到下面这种:

// 链式方法二
// 增加的代码
function hello($str){
    return new hello($str);
}

hello($value)->page('Page Two')->json();

 

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

随机文章:

1、Visual Studio 2012 中 Visual C# 的重大更改
https://www.onexin.net/visual-c-visual-studio-2012-major-changes/

2、Sends a http request to www.example.com
https://www.onexin.net/sends-an-http-request-to-www-example-com/

3、深入理解Magento – 第三章 – 布局,块和模板
https://www.onexin.net/depth-understanding-of-magento-chapter-iii-layout-block-and-template/

4、canonical URL权威链接用法与副本内容
https://www.onexin.net/canonical-url-links-to-use-and-copy-the-contents-of-the-authority/

5、Statamic 3已发布且基于Laravel软件包构建
https://www.onexin.net/laravel-statamic-3/

Leave a Reply