> 백엔드 개발 > PHP 튜토리얼 > PHP 체인 작업 구현

PHP 체인 작업 구현

풀어 주다: 2023-04-08 13:22:01
앞으로
3124명이 탐색했습니다.

PHP 체인 작업 구현

PHP 체인 작업의 핵심은 작업 완료 후 $this를 반환하는 것입니다.

1. 체인 작업을 구현하기 위해 __call 메서드를 사용하지 마세요.

<?php
class Sql{
    private $sql=array("from"=>"",
            "where"=>"",
            "order"=>"",
            "limit"=>"");

    public function from($tableName) {
        $this->sql["from"]="FROM ".$tableName;
        return $this;
    }

    public function where($_where=&#39;1=1&#39;) {
        $this->sql["where"]="WHERE ".$_where;
        return $this;
    }

    public function order($_order=&#39;id DESC&#39;) {
        $this->sql["order"]="ORDER BY ".$_order;
        return $this;
    }

    public function limit($_limit=&#39;30&#39;) {
        $this->sql["limit"]="LIMIT 0,".$_limit;
        return $this;
    }
    public function select($_select=&#39;*&#39;) {
        return "SELECT ".$_select." ".(implode(" ",$this->sql));
    }
}

$sql =new Sql();

echo $sql->from("testTable")->where("id=1")->order("id DESC")->limit(10)->select();
//输出 SELECT * FROM testTable WHERE id=1 ORDER BY id DESC LIMIT 0,10
?>
로그인 후 복사

2. 체인 작업을 구현하려면 __call 메서드를 사용하세요.

__call()은 객체가 액세스할 수 없는 메소드를 호출할 때 트리거되므로 클래스의 동적 메소드 생성을 실현하고 PHP의 메소드 오버로딩 기능을 실현할 수 있지만 실제로는 구문 설탕입니다(__construct() 메소드는 또한).

<?php
class String
{
    public $value;

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

    public function __call($name, $args)
    {
        $this->value = call_user_func($name, $this->value, $args[0]);
        return $this;
    }

    public function strlen()
    {
        return strlen($this->value);
    }
}
$str = new String(&#39;01389&#39;);
echo $str->trim(&#39;0&#39;)->strlen();
// 输出结果为 4;trim(&#39;0&#39;)后$str为"1389"
?>
로그인 후 복사

관련 권장 사항:

PHP 비디오 튜토리얼: https://www.php.cn/course/list/29/type/2.html

위 내용은 PHP 체인 작업 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿