PHPチェーン動作の実装方法は何ですか?
PHP でチェーン操作を実装する方法: 1. マジック関数 "__call" と "call_user_func" を組み合わせて実装します; 2. マジック関数 "__call" と "call_user_func_array" を組み合わせて実装します; 3. トリムを使用します() 実装する関数。
このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター
たとえば、php 関数では、最初に文字列の末尾にあるスペースをフィルタリングしてから、その長さを調べる必要があります。一般的な記述方法は次のとおりです:
strlen(trim($str))
次のようなチェーン操作を実装したい場合たとえば、js では次のように記述すればよいでしょうか
$str->trim()->strlen()
以下は 3 つの方法で実装されます:
方法 1. マジック関数 __call と call_user_func を組み合わせて使用します。
考えを実現するには:最初に文字列クラス StringHelper を定義し、コンストラクターが値を直接割り当ててから、trim() 関数と strlen() 関数をチェーンで呼び出し、call_user_func を使用します。呼び出されたマジック関数 __call() で呼び出し関係を処理します。実装は次のとおりです:
<?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();
ターミナル実行スクリプト:
php test.php 8
方法 2、マジック関数 __call を次と組み合わせて使用します。 call_user_func_array を実行して
<?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();
手順:
array_unshift(array,value1,value2,value3...)
array_unshift()
関数は、新しい要素を配列に挿入するために使用されます。新しい配列の値は配列の先頭に挿入されます。
call_user_func()
と call_user_func_array
はどちらも関数を動的に呼び出すメソッドですが、違いはパラメータの受け渡し方法にあります。
方法 3、マジック関数 __call を使用せず、trim() 関数を使用してこれを実現します。
_call()
を変更するだけです。 trim()
関数で十分です:
public function trim($t) { $this->value = trim($this->value, $t); return $this; }
ポイントは、後者の関数の呼び出しを容易にするために $this ポインターを返すことです。
推奨学習: 「PHP ビデオ チュートリアル 」
以上がPHPチェーン動作の実装方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
