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