PHPを使った連鎖演算の方法は、マジック関数callとcall_user_funcを組み合わせて実装する方法、マジック関数呼び出しとcall_user_func_arrayを組み合わせて実装する方法、マジック関数呼び出しを使わずに実装する方法の3つです。
PHP には多くの string関数 があります。たとえば、最初に文字列の末尾のスペースをフィルターしてから、その長さを調べる必要があります。一般的な書き方は次のとおりです。
jsで同様のチェーンを実装したい場合例えば以下のように書けばよいでしょうか?
strlen(trim($str))
以下は 3 つの方法で実装されます:
String
Helper を定義し、$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('0')->strlen();
方法 2、call_user_func_array と組み合わせたマジック関数呼び出しを使用して、
php test.php
説明:
<?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('0')->strlen();重要なポイントは、後者の関数の呼び出しを容易にするために $this ポインターを返すことです。 方法 3、実装するためにマジック関数呼び出しを使用しません_call() を Trim() 関数に変更するだけです:
public function trim($t) { $this->value = trim($this->value, $t); return $this; }重要なポイントは、後者の関数の呼び出しを容易にするために $this ポインターを返すことです。
これらの事例を読んだ後は、その方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
大規模な Web サイトのトラフィックと高い同時実行性の問題を PHP がどのように解決するか
PHP 製品フラッシュ セールのタイミングの実装 (大規模なトラフィックに対する解決策) )
以上がPHP でチェーン操作を実装するにはいくつかの方法がありますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。