>  기사  >  백엔드 개발  >  PHP에서 체인 작업을 구현하는 세 가지 방법

PHP에서 체인 작업을 구현하는 세 가지 방법

墨辰丷
墨辰丷원래의
2018-05-17 11:31:401498검색

이 글에서는 체인 연산을 구현하기 위한 PHP의 세 가지 방법을 주로 소개하고, PHP 체인 연산의 관련 구현 기술과 사용 주의 사항을 예제 형식으로 분석합니다. 도움이 필요한 친구들은 참고할 수 있습니다

자세한 내용은 다음과 같습니다.

PHP에는 많은 문자열 함수가 있습니다. 예를 들어 먼저 문자열 끝의 공백을 필터링한 다음 해당 길이를 찾아야 합니다. 일반적인 작성 방법은 다음과 같습니다. 예를 들어, 다음과 같이 js와 유사한 체인 작업을 구현하고 싶습니다.


strlen(trim($str))


다음은 구현하는 세 가지 방법입니다.


방법 1. call_user_func와 결합된 매직 함수 __call을 사용하여


구현합니다. 생각:

먼저 문자열 클래스 StringHelper, 생성자 할당을 정의합니다. 값을 직접 호출한 다음 체인에서 Trim() 및 strlen() 함수를 호출하고 호출 관계를 처리하기 위해 호출된 마법 함수 __call()에서 call_user_func를 사용합니다. 구현은 다음과 같습니다.

$str->trim()->strlen()

터미널 실행 스크립트:


<?php
class StringHelper 
{
  private $value;
  function __construct($value)
  {
    $this->value = $value;
  }
  function __call($function, $args){
    $this->value = call_user_func($function, $this->value, $args[0]);
    return $this;
  }
  function strlen() {
    return strlen($this->value);
  }
}
$str = new StringHelper(" sd f 0");
echo $str->trim(&#39;0&#39;)->strlen();


방법 2, call_user_func_array와 결합된 마법 함수 __call을 사용하여



php test.php 
8

지침:


array_unshift(배열,값1,값2 ,value3..)


array_unshift() 함수는 배열에 새 요소를 삽입하는 데 사용됩니다. 새 배열의 값은 배열의 시작 부분에 삽입됩니다.

call_user_func()call_user_func_array는 모두 동적으로 함수를 호출하는 방법입니다. 차이점은 매개변수가 전달되는 방식에 있습니다.

방법 3,

을 달성하기 위해 마법 함수 __call을 사용하지 마세요. _call()trim() 함수로 수정하세요.

array_unshift() 函数用于向数组插入新元素。新数组的值将被插入到数组的开头。

call_user_func()call_user_func_array都是动态调用函数的方法,区别在于参数的传递方式不同。

方法三、不使用魔法函数__call来实现

只需要修改_call()trim()

<?php
class StringHelper 
{
  private $value;
  function __construct($value)
  {
    $this->value = $value;
  }
  function __call($function, $args){
    array_unshift($args, $this->value);
    $this->value = call_user_func_array($function, $args);
    return $this;
  }
  function strlen() {
    return strlen($this->value);
  }
}
$str = new StringHelper(" sd f 0");
echo $str->trim(&#39;0&#39;)->strlen();


핵심은 $this 포인터를 반환하여 후자의 함수 호출을 용이하게 하는 것입니다.


관련 권장 사항:

PHP 문자열에 지정된 데이터가 포함되어 있는지 쿼리

PHP의 세 가지 문자열 표현

PHP에서 일반적으로 사용되는 문자열 함수

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

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