オブジェクトプロパティとメソッドコールのオーバーロードとは? わかりやすく解説

Weblio 辞書 > 固有名詞の種類 > 製品 > コンピュータ > プログラミング言語 > PHP > オブジェクトプロパティとメソッドコールのオーバーロードの意味・解説 

オブジェクトプロパティとメソッドコールのオーバーロード

導入

この拡張モジュールの用途は、オブジェクトのプロパティへのアクセスと メソッドのコールのオーバーロードを可能にすることです。この 拡張モジュールで定義されている関数は 1 つだけです。この関数、 overload() は、この機能を有効にするクラスの名前を 引数とします。名前を指定されたクラスでこの機能を使用したい場合は 以下の適当なメソッドを定義する必要があります。これらは、 __get()__set()__call() で、それぞれプロパティを取得、 プロパティを設定、メソッドをコールするためのものです。 オーバーロード機能は選択可能です。これらのハンドラ関数の中で オーバーロードを無効とすることができ、 この場合、オブジェクトのプロパティに普通にアクセスできます。

警告
この拡張モジュールは、 実験的 なものです。この拡張モジュールの動作・ 関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 このモジュールは自己責任で使用してください。


警告
この拡張モジュールは PHP 5 には含まれていません。PHP 5 では __get()__set() および __call() をネイティブにサポートしています。詳細は PHP 5 のオーバーロード のページを参照ください。

要件

外部ライブラリを必要としません。

インストール手順

以下の関数を使用するには、オプション --enable-overload を指定して PHP を コンパイルする必要があります。この拡張モジュールは、 PHP 4.3.0 ではデフォルトで有効になっています。 --disable--overload により オーバーロードのサポートを無効とすることができます。
Windows 版の PHP には この拡張モジュールのサポートが組み込まれています。これらの関数を使用 するために拡張モジュールを追加でロードする必要はありません。
注意: オーバーロードの組み込みサポートは PHP 4.3.0 で利用可能となりました。

実行時設定

設定ディレクティブは定義されていません。

リソース型

リソース型は定義されていません。

定義済み定数

定数は定義されていません。

overload() 関数の簡単な使用例をいくつか示します。 例 1518. PHP クラスのオーバーロード
<?php

class OO {
   var $a = 111;
   var $elem = array('b' => 9, 'c' => 42);

   // プロパティを取得するためのコールバックメソッド
   function __get($prop_name, &$prop_value)
   {
       if (isset($this->elem[$prop_name])) {
           $prop_value = $this->elem[$prop_name];
           return true;
       } else {
           return false;
       }
   }

   // プロパティを設定するためのコールバックメソッド
   function __set($prop_name, $prop_value)
   {
       $this->elem[$prop_name] = $prop_value;
       return true;
   }
}

// OO オブジェクトをオーバーロードします。
overload('OO');

$o = new OO;
echo "\$o->a: $o->a\n"; // 出力: $o->a: 111
echo "\$o->b: $o->b\n"; // 出力: $o->b: 9
echo "\$o->c: $o->c\n"; // 出力: $o->c: 42
echo "\$o->d: $o->d\n"; // 出力: $o->d:

// OO の $elem 配列に新規アイテムを追加します。
$o->x = 56;

// (PHP 4 に組み込まれている) stdclass のインスタンスを生成します。
// $val はオーバーロードされていません!
$val = new stdclass;
$val->prop = 555;

// $val オブジェクトを有する配列として "a" を設定します。
// しかし、__set() はこれを $elem 配列に代入します。
$o->a = array($val);
var_dump($o->a[0]->prop);

?>


目次

overload — クラスのプロパティおよびメソッドに関してオーバーロードを可能にする




固有名詞の分類

PHP bzcompress  tmpfile  オブジェクトプロパティとメソッドコールのオーバーロード  OCI-Collection->free  OrbitEnum

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

オブジェクトプロパティとメソッドコールのオーバーロードのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



オブジェクトプロパティとメソッドコールのオーバーロードのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.

©2024 GRAS Group, Inc.RSS