目次
phpコヒーレント操作の実装
ホームページ バックエンド開発 PHPチュートリアル PHP コヒーレント操作の実装_PHP チュートリアル

PHP コヒーレント操作の実装_PHP チュートリアル

Jul 13, 2016 am 09:56 AM

phpコヒーレント操作の実装

一部のフレームワーク (ThinkPHP など) を使用してコーディングする場合、このようなコードをよく使用します。
M('ユーザー')->where(配列('id'=>1))->フィールド('名前')->select();
これはコーディングに役立つだけでなく、人々に「幸せな気分」をもたらします。さて、これ以上言うことはありません。やり方を見てみましょう?
//データベース操作基本クラス[追記:メイン関数コヒーレント関数実装]
クラス DB{
//この属性は、一貫した操作を実現するためのメソッド名を定義します
public $sql = array(
"フィールド" => "",
「どこ」 => 「」、
「注文」=>「」、
"制限" => "",
"グループ" => "",
「持っている」=>「」、
);

/**
* 連続した操作の場合は、field() where() order() limit() group() getting() メソッドを呼び出して SQL ステートメントに結合します
※このメソッドはPHPのマジックメソッドです
クラスに存在しないメソッドを呼び出すと自動的に呼び出されます。 * @param $methodName 存在しないメソッドを呼び出す場合、メソッド名の文字列を受け取ります
* @param $args 存在しないメソッドを呼び出す場合、そのメソッドのパラメータを配列で受け取ります
*/
function __call($methodName,$args){
//リクエストされたメソッド名を小文字に変換します
$methodName=strto lower($methodName);
//リクエストメソッド名がメンバー属性配列の$sql添字に対応する場合、2番目のパラメータを配列内の「添字に対応する要素」に割り当てます
;
if(isset($this->sql[$methodName])){
$this->sql[$methodName]=$args[0];
}その他{
echo '呼び出しクラス '.get_class($this).' の '.$methodName.'() メソッドが存在しません';
}
// オブジェクトを返します。これにより、このオブジェクト内のメソッドを引き続き呼び出して一貫した操作を形成できます
$this を返します;
}

/**
* このメソッドを使用して select SQL ステートメントに結合します。[PS: このメソッドは連続操作を終了し、連続操作の最後に配置されます]
*/
関数 select(){
//sql 文字列を選択構文に従って結合します [追記: mysql コマンドラインで「help select;」を実行すると構文構造を表示できます]
$sql="SELECT {$this->sql['field']} FROM テスト {$this->sql['where']} {$this->sql['group']} {$this- >sql['having']} {$this->sql['order']} {$this->sql['limit']}";
エコー $sql;
}
}

$obj=新しいデータベース();

$obj->field('名前,性別,住所')->where('where name="guoyu"')->limit('limit 1')->select();

//出力: SELECT 名前、性別、住所 FROM test where name=guoyulimit 1

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/986703.html技術記事 PHP の一貫した操作の実装 いくつかのフレームワーク (ThinkPHP など) を使用してコーディングする場合、このようなコードを使用することがよくあります。 M(User)-where(array(id=1))-field(name)-select(); これはコーディングに役立つだけではありません...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

11ベストPHP URLショートナースクリプト(無料およびプレミアム)

Instagram APIの紹介 Instagram APIの紹介 Mar 02, 2025 am 09:32 AM

Instagram APIの紹介

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelでフラッシュセッションデータを使用します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelテストでの簡略化されたHTTP応答のモッキング

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPのカール:REST APIでPHPカール拡張機能を使用する方法

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

LaravelのバックエンドでReactアプリを構築する:パート2、React

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

Codecanyonで12の最高のPHPチャットスクリプト

Laravelの通知 Laravelの通知 Mar 04, 2025 am 09:22 AM

Laravelの通知

See all articles