ホームページ  >  記事  >  バックエンド開発  >  PHP でチェーン操作を実装する 3 つの方法

PHP でチェーン操作を実装する 3 つの方法

墨辰丷
墨辰丷オリジナル
2018-05-17 11:31:401498ブラウズ

この記事では、主に PHP でチェーン操作を実装する 3 つの方法を紹介し、関連する実装テクニックと PHP チェーン操作の使用上の注意事項を例の形式で分析します。必要な友人は参考にしてください。

詳細は次のとおりです。

PHP には多くの文字列関数があります。たとえば、最初に文字列の末尾のスペースをフィルタリングしてから、その長さを調べる必要があります。一般的な記述方法は次のとおりです。例えばjsと同じようなチェーン操作を実装したいのですが、以下のように書けばいいでしょうか?


strlen(trim($str))


実装するには次の 3 つの方法があります:

方法 1. マジック関数 __call を call_user_func と組み合わせて使用​​して実装します


考え:

最初に文字列クラス StringHelper、コンストラクター Assign を定義します。 value を直接呼び出してから、trim() 関数と strlen() 関数をチェーンで呼び出し、呼び出されたマジック関数 __call() で call_user_func を使用して呼び出し関係を処理します。実装は次のとおりです。ターミナル実行スクリプト:

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

方法 2、マジック関数 __call を call_user_func_array と組み合わせて使用​​し、


<?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();

手順:


array_unshift(配列,値1,値2 ,value3. ..)

array_unshift() 関数は、配列に新しい要素を挿入するために使用されます。新しい配列の値は配列の先頭に挿入されます。

call_user_func()call_user_func_array はどちらも関数を動的に呼び出すメソッドであり、違いはパラメーターの受け渡し方法にあります。


方法 3、


を実現するためにマジック関数 __call を使用しないでください。_call()trim() 関数に変更するだけです:

php test.php 
8

重要なポイントは、後者の関数の呼び出しを容易にするために $this ポインターを返すことです。関連する推奨事項:php文字列に指定されたデータが含まれていることをクエリphpの文字列の3つの文字列

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

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

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

只需要修改_call()trim()

phpで一般的に使用される文字列関数


以上がPHP でチェーン操作を実装する 3 つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。