1

有什么方法可以调用 php 类(例如 $var = new className)并让 var 存储 className 函数返回的值?

或者,有没有办法调用一个类而不让它执行同名的函数?

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

与类同名的功能是它们在 php 4 中的“构造函数”工作方式。创建新对象实例时会自动调用此函数。

在 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 回答