2012-03-11 10 views
0

私はそれを持っているようにしています。作成されたすべてのIntegerに対して、何らかのテキストが出力されます。このために、私はデフォルトのInteger型をオーバーロード(または拡張)しようとしています。組み込みの型コンストラクタをPHPでオーバーロードする

私は

public function __construct($data) { print $data; } 

が可能です。このようなカスタムのコンストラクタを持っている組み込み型(整数、配列、文​​字列)を持っていると思いますか?私はそれがオンライン前に試行されたことさえ見つけられません。

編集:私はこれを試してみました

class Integer { /*...*/ } 

そして、この:

class Integer extends Integer { /*...*/ } 
+4

デフォルトの整数型と文字列型は、PHPではオブジェクトではありません。したがって過負荷はありません。あなたは彼らが何であると思いますか? – Dan

+0

必ずしもオブジェクトではないと私は思うのですが、オブジェクトとして考えるときに私が望むものを説明するのは簡単です。 – DanRedux

+0

あなたはそれらの周りにラッパーを書くことができ、ネイティブの整数や文字列型を使う代わりにそれらを使うことができますが、それは本当に必要ですか?パフォーマンスの低下は、これの欠点です。 – Dan

答えて

0

PHPネイティブのスカラー型はオブジェクトではありませんので、あなたがそれらをオーバーロードすることはできません。
あなたはラッパークラスを作成し、そのようにそれらを使用することができます。

$int = new Integer(5); 

しかし、それはおそらく、理にかなっているよりもはるかに多くの仕事です。

+0

ええ、それはちょうどこれを行うからコンストラクタを呼び出すための機能を持っていません:$ x = 5; – DanRedux

+1

ええ、PHPはあなたのための適切な言語ではありません。 :-P – deceze

関連する問題