thinkPHP와 같은 PHP 개발 프레임워크는 다음 코드와 같이 데이터베이스의 작업 클래스를 캡슐화하고 메서드가 호출됩니다.
<code>M('Test')->where(['status'=>1])->field('id,name')->select();</code>
이 구현 방법의 아이디어는 무엇입니까? 해당하는 특정 기술 용어가 있나요?
thinkPHP와 같은 PHP 개발 프레임워크는 다음 코드와 같이 데이터베이스의 작업 클래스를 캡슐화하고 메서드가 호출됩니다.
<code>M('Test')->where(['status'=>1])->field('id,name')->select();</code>
이 구현 방법의 아이디어는 무엇입니까? 해당하는 특정 기술 용어가 있나요?
체인 콜, $this
을 반환하여 구현됩니다.
데모 작성:
<code class="php"><?php /** * 简单的加减法计算类 * * @author Flc <2016-11-23 19:32:26> */ class Calc { /** * 结果 * @var integer */ protected $result = 0; /** * 加法 * @param number $value */ public function add($value) { $this->result += $value; return $this; } /** * 减法 * @param number $value */ public function sub($value) { $this->result -= $value; return $this; } /** * 返回结果 * @return [type] [description] */ public function result() { return $this->result; } } $calc = new Calc; echo $calc ->add(1) ->add(2) ->sub(1) ->add(11) ->result();</code>
각 방법이 포인트입니다<code>return $this;</code>
MVC 모델의 원리를 배울 수 있습니다.
그럼 클래스 캡슐화에 대해 살펴보겠습니다.
M('Test')는 실제로 TestModel 클래스를 정의하는 것과 동일합니다.
M('Test')->where()는 클래스의 where 메서드를 호출합니다.
가장 큰 어려움은 MVC 모델을 구현하는 데 있습니다.
MVC 모델 구현에 대한 튜토리얼입니다. 확인하실 수 있습니다.
https://www.shiyanlou.com/cou...
체인 콜, 리턴 $이거 괜찮습니다. 다양한 ORM 프레임워크를 참고하시면 됩니다
객체가 반환될 때마다 연쇄작업인가요?
체인 연산, $this 반환, 메소드 호출
체인운영
<code>return $this;</code>
위 분들 말씀이 모두 맞습니다. 연결해 보겠습니다.
<code>http://blog.csdn.net/zhengwish/article/details/51742880</code>
연결된 호출은 매번 개체를 반환합니다