ArrayAccess インターフェースの紹介_PHP チュートリアル
Jul 13, 2016 pm 04:58 PMPHP5 には一連の新しいインターフェイスがあります。 HaoHappy が翻訳したこの一連の記事で、そのアプリケーションについて学ぶことができます。同時に、これらのインターフェイスと実装された一部のクラスは、標準 PHP ライブラリ (SPL) に分類されます。クラスのオーバーロードをさらに強化するために、多くの機能が PHP5 に追加されました。 ArrayAccess の目的は、クラスを配列 (PHP の配列) のように見せることです。これは、C# のインデックス機能と非常によく似ています。
ArrayAccess の定義は次のとおりです:
インターフェース ArrayAccess
ブール値の offsetExists($index)
混合オフセットGet($index)
void offsetSet($index, $newvalue)
void offsetUnset($index)
PHP 配列の能力により、多くの人は PHP アプリケーションを作成するときに構成情報を配列に保存することがよくあります。したがって、コード内のあらゆる場所にグローバルが存在する可能性があります。別の方法を試してみましょう?
次のコードのような:
//設定クラス
クラス構成は ArrayAccess を実装します
{
静的プライベート $config;
プライベート $configarray;
プライベート関数 __construct()
{
// 初期化
$this->configarray = array("ビンジー"=>"男性", "ジャスミン"=>"女性");
}
パブリック静的関数instance()
{
//
if (self::$config == null)
{
self::$config = 新しい構成();
}
self::$config を返す;
}
関数 offsetExists($index)
{
return isset($this->configarray[$index]);
}
関数 offsetGet($index) {
return $this->configarray[$index];
}
関数 offsetSet($index, $newvalue) {
$this->configarray[$index] = $newvalue;
}
関数 offsetUnset($index) {
unset($this->configarray[$index]);
}
}
$config = 構成::インスタンス();
print $config["Binzy"];
ご想像のとおり、プログラムの出力は「男性」です。
次のアクションを実行すると:
$config = 構成::インスタンス();
print $config["Binzy"];
$config['ジャスミン'] = "ビンジーの恋人";
//設定2
$config2 = 構成::インスタンス();
print $config2['ジャスミン'];
はい、予想どおり、出力は Binzy's Lover になります。
これと配列を使用することの違いは何ですか?と疑問に思われるかもしれません。目的に違いはありませんが、最大の違いはカプセル化です。 OO の最も基本的なジョブはカプセル化であり、カプセル化により変更を内部に効果的に保持できます。つまり、構成情報が PHP 配列に格納されなくなった場合、アプリケーション コードを変更する必要はありません。実行できることは、構成スキームに新しい戦略 (Strategy) を追加することだけです。 :
ArrayAccess はさらに改良されており、カウントする方法がなくなったため、ほとんどの場合、使用には影響しません。
参考:
1.《PHP5パワープログラミング》
2.「デザインパターン」
3.「オブジェクト指向の分析と設計」

人気の記事

人気の記事

ホットな記事タグ

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

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

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

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

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

ホットトピック











Edge ブラウザに付属の翻訳 Web ページが見つからない場合はどうすればよいですか?

字幕なしで映画を見ても心配しないでください。 Xiaomi、日本語と韓国語の翻訳のためのリアルタイム字幕Xiaoai Translationの開始を発表

コンピュータのマザーボードの内部インターフェイスとは何ですか? コンピュータのマザーボードの内部インターフェイスに関する推奨される入門

Google Chromeの組み込み翻訳が失敗する問題を解決するにはどうすればよいですか?

華宜山Heart of the Moon Lu Shuのスキルと特性の紹介
