この記事では、主に PHP でチェーン操作を実装する 3 つの方法を紹介し、関連する実装テクニックと PHP チェーン操作の使用上の注意事項を例の形式で分析します。必要な友人は参考にしてください。
詳細は次のとおりです。
PHP には多くの文字列関数があります。たとえば、最初に文字列の末尾のスペースをフィルタリングしてから、その長さを調べる必要があります。一般的な記述方法は次のとおりです。例えばjsと同じようなチェーン操作を実装したいのですが、以下のように書けばいいでしょうか?strlen(trim($str))
方法 1. マジック関数 __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('0')->strlen();
手順:
array_unshift(配列,値1,値2 ,value3. ..)
array_unshift()
関数は、配列に新しい要素を挿入するために使用されます。新しい配列の値は配列の先頭に挿入されます。
call_user_func()
と call_user_func_array
はどちらも関数を動的に呼び出すメソッドであり、違いはパラメーターの受け渡し方法にあります。 _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 サイトの他の関連記事を参照してください。