>  기사  >  백엔드 개발  >  PHP 프레임워크 - PHP 클래스 호출에 대한 팁

PHP 프레임워크 - PHP 클래스 호출에 대한 팁

WBOY
WBOY원래의
2016-12-05 13:44:08965검색

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>

연결된 호출은 매번 개체를 반환합니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.