ホームページ > バックエンド開発 > PHPチュートリアル > コードを甘くする PHP の非一般的な使用法の概要 (1)

コードを甘くする PHP の非一般的な使用法の概要 (1)

WBOY
リリース: 2016-06-13 13:05:47
オリジナル
988 人が閲覧しました

コードを甘くする。PHP の特別な使い方のまとめ (1)
最近のプロジェクトが終わりに近づいており、暇なときにいくつかの PHP フレームワークと優れたオープン ソース ソフトウェアのコードを見て、一般的に使用されているコードから学ぶことができます。次に、他のコードを読んで、あまり一般的ではない関数や特殊な使用法を理解します。これらのコードはすべて PHP 5 用にコーディングされているため、最新の機能を完全に学ぶことができます。以下は、この時期にコードを読み取るための私の特別な使用法をいくつかまとめたものです。
まず、PHP の糖衣構文について説明します。複雑な PHP アプリケーションでは、美しく使いやすいようにするために、MVC フレームワークまたは汎用フレームワークを使用するか、独自に新しいフレームワークを作成する傾向があります。構文糖衣を少し振りかけることが不可欠です。以下が役に立ちます。
1. オブジェクトをよりリッチにするマジック メソッド
PHP5 では、いくつかの新しいマジック メソッドが追加されており、その中にはオブジェクトが存在しないメソッドを実行したり、存在しないプロパティを取得したりできるものもあります。この機能は最もよく知られている高度な使用法です。知らない場合は、PHP マニュアルの「オーバーロード」セクションを確認してください。

__call および __callStatic
は、オブジェクトの存在しないメソッドを実行するときにトリガーされます。 プロトタイプは次のとおりです。

mixed __call ( string $name , array $arguments )
mixed __callStatic ( string $name , array $arguments )
ログイン後にコピー


__set および __get、__isset および __unset
操作中 オブジェクト属性が存在しない場合にトリガーされます。プロトタイプは次のとおりです。
void __set ( string $name , mixed $value )
mixed __get ( string $name )
bool __isset ( string $name )
void __unset ( string $name )
ログイン後にコピー


2. 配列をよりオブジェクト指向にする

stdClass
オブジェクトを介して要素にアクセスしたい場合があります。その場合は、オブジェクトを使用する去勢された方法に似た stdClass を使用できます。> 要素の配列にアクセスするのは、純粋に視覚的な感覚を追求して 2 つ入力するためだと思います。しかし、そうは言っても、これらはプログラミングの美しさの点でも非常に優れています。
配列から stdClass まで、配列をトラバースして自分で追加できます。 stdClass から Array に変換するには、関数 get_object_vars を使用して取得できます。
これを使用する最も一般的な例は、mysql_fetch_object と json_decode です。

3. どこでも配列を作成する
以前、ある投稿で、PHP は配列指向のプログラミングであると述べていましたが、よく考えてみると、PHP の配列操作は非常に強力です。配列操作には主に [ ] 演算子、foreach、および count 関数が含まれます。これらの関数をクラスに持たせたい場合は、次のインターフェイスを実装できます。

ArrayAccess
このインターフェイスを実装すると、オブジェクトが [] 操作をサポートできるようになります。プロトタイプは次のとおりです:
ArrayAccess {
/* Methods */
abstract public boolean offsetExists ( string $offset )
abstract public mixed offsetGet ( string $offset )
abstract public void offsetSet ( string $offset , string $value )
abstract public void offsetUnset ( string $offset )
}
ログイン後にコピー


Iterator
このインターフェイスを実装すると、 foreach をサポートするオブジェクト、プロトタイプは次のとおりです。
Iterator extends Traversable {
/* Methods */
abstract public mixed current ( void )
abstract public scalar key ( void )
abstract public void next ( void )
abstract public void rewind ( void )
abstract public boolean valid ( void )
}
ログイン後にコピー

このインターフェイスは比較的複雑で、foreach 操作でのインターフェイス関数の実行順序に影響します。簡単に言うと、rewind/next->valid->current->key 詳細については、非常にわかりやすく書かれている PHP マニュアルの該当部分を参照してください。

Countable
このインターフェイスを実装すると、オブジェクトが count 関数をサポートできるようになります。プロトタイプは次のとおりです。
Countable {
/* Methods */
abstract public int count ( void )
}
ログイン後にコピー


今日はこれで終わりです。将来のセッション処理について、記憶を強化し、将来の問い合わせを容易にするために、自動ロード、エラー処理、その他の関連コンテンツの概要を説明します。
私の Weibo アドレス: http://weibo.com/jameren、皆さんも私をフォローしてください コードを甘くする PHP の非一般的な使用法の概要 (1)
ところで宣伝をさせてください:
引用

私は最近、大容量の 15G 無料ネットワーク U ディスクを使用しました - @ Cool Disk で使用できます。 PC と携帯電話、ファイルの種類とサイズの制限なし、高速転送速度、ファイルが失われることはありません、ぜひ一緒に体験してください。以下の招待リンクから登録すると、あなたも私も 256 MB の追加のディスク容量を獲得できます。 http://t.cn/aNLZje

1階 リウジキアングルク 2011-07-10
はい、PHP5 の一部の機能は確かに PHP をよりエレガントにし、よりオブジェクト指向的に見せることができます
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート