1

PHP クラス (例: $var = new className) を呼び出して、className 関数によって返された値を var に格納する方法はありますか?

または、クラスを呼び出して、同じ名前の関数を実行させない方法はありますか?

4

4 に答える 4

2

PHP5では、魔法のメソッド__toString();を使用することができます。クラスインスタンス/オブジェクトから値を返します。

単に

class MyClass{

function __construct(){
  // constructor
}

function __toString(){
  // to String
  return 5;
}

}

$inst = new MyClass();

echo $inst; // echos 5

コンストラクターは値を返しません(実際、それはできません)。クラスのインスタンスから値を取得する場合は、__ toString()マジカルメソッドを使用します。

于 2009-11-02T01:43:32.080 に答える
2

クラスと同じ名前の関数は、php4の「コンストラクター」が機能する方法でした。この関数は、新しいオブジェクトインスタンスが作成されるときに自動的に呼び出されます。

php 5では、代わりに新しい魔法の関数__construct()が使用されます。php5を使用していて、'__construct'メソッドが含まれていない場合、phpは古いスタイルのコンストラクターメソッドを検索します。 http://www.php.net/manual/en/language.oop5.decon.php

したがって、php5を使用している場合は、クラスに「__construct」メソッドを追加すると、新しいオブジェクトが作成されるときに、phpは「クラスと同じ名前のメソッド」の実行を終了します。

于 2009-11-02T01:50:14.090 に答える
0

コンストラクターは値を返しません。作成する新しいオブジェクトをインスタンス化するために使用されます。$ varには、指定したコードを使用した新しいオブジェクトへの参照が常に含まれます。

正直なところ、あなたの質問からすると、授業の意図がわからないようです。

于 2009-11-02T01:40:38.887 に答える
0

$var = new classname常にのインスタンスを返しますclassname。あなたはそれが何か他のものを返すようにすることはできません。

これを読んでください... http://www.php.net/manual/en/language.oop5.php

于 2009-11-02T01:42:31.207 に答える