有什么方法可以调用 php 类(例如 $var = new className)并让 var 存储 className 函数返回的值?
或者,有没有办法调用一个类而不让它执行同名的函数?
在 PHP5 中可以使用神奇的方法 __toString(); 从类实例/对象返回一个值。
简单地
class MyClass{
function __construct(){
// constructor
}
function __toString(){
// to String
return 5;
}
}
$inst = new MyClass();
echo $inst; // echos 5
构造函数不返回值(实际上你不能这样做)。如果要从类的实例中获取值,请使用 __toString() 神奇方法。
与类同名的功能是它们在 php 4 中的“构造函数”工作方式。创建新对象实例时会自动调用此函数。
在 php 5 中,使用了一个新的魔术函数 __construct()。如果您使用 php5 并且不包含 '__construct' 方法,则 php 将搜索旧式构造方法。 http://www.php.net/manual/en/language.oop5.decon.php
因此,如果您使用的是 php5,请在您的类中添加一个“__construct”方法,当构造一个新对象时,php 将停止执行您的“与该类同名的方法”。
构造函数不返回值,它们用于实例化您正在创建的新对象。$var 将始终使用您提供的代码包含对新对象的引用。
老实说,从您的问题来看,您似乎不了解课程的意图。
$var = new classname
将始终返回classname
. 你不能让它返回别的东西。