PHP クラス (例: $var = new className) を呼び出して、className 関数によって返された値を var に格納する方法はありますか?
または、クラスを呼び出して、同じ名前の関数を実行させない方法はありますか?
PHP5では、魔法のメソッド__toString();を使用することができます。クラスインスタンス/オブジェクトから値を返します。
単に
class MyClass{
function __construct(){
// constructor
}
function __toString(){
// to String
return 5;
}
}
$inst = new MyClass();
echo $inst; // echos 5
コンストラクターは値を返しません(実際、それはできません)。クラスのインスタンスから値を取得する場合は、__ toString()マジカルメソッドを使用します。
クラスと同じ名前の関数は、php4の「コンストラクター」が機能する方法でした。この関数は、新しいオブジェクトインスタンスが作成されるときに自動的に呼び出されます。
php 5では、代わりに新しい魔法の関数__construct()が使用されます。php5を使用していて、'__construct'メソッドが含まれていない場合、phpは古いスタイルのコンストラクターメソッドを検索します。 http://www.php.net/manual/en/language.oop5.decon.php
したがって、php5を使用している場合は、クラスに「__construct」メソッドを追加すると、新しいオブジェクトが作成されるときに、phpは「クラスと同じ名前のメソッド」の実行を終了します。
コンストラクターは値を返しません。作成する新しいオブジェクトをインスタンス化するために使用されます。$ varには、指定したコードを使用した新しいオブジェクトへの参照が常に含まれます。
正直なところ、あなたの質問からすると、授業の意図がわからないようです。
$var = new classname
常にのインスタンスを返しますclassname
。あなたはそれが何か他のものを返すようにすることはできません。
これを読んでください... http://www.php.net/manual/en/language.oop5.php