通常,函数是从函数内部调用的,但是如果我想调用类中的函数但是在函数外部,在php中。
[编辑]:
将函数x()更改为静态函数x()
----
我的代码是:
class MyClass {
$a = Zend_Registry::get("dbCred");
static function x(){ ... }
}
这给了我以下错误:
parse error, expecting `"function (T_FUNCTION)"' in MyClass.php on line 12
[编辑]: 我实际上想从函数x中访问$ a的值。
答案 0 :(得分:1)
您无法在编译时调用函数(当PHP程序正在读取和编译代码时)。您只能在运行时(正在执行代码时)调用函数。
在这种情况下,您可以在类'constructor:
中调用该函数class MyClass {
public $a;
function __construct() {
$this->a = Zend_Registry::get("dbCred");
}
}
由于x()
方法是静态的,您也可以将成员设置为静态,然后在a
方法中延迟加载凭据,如下所示:
class MyClass {
public static $a;
public static function a() {
if (self::$a === null) {
self::$a = Zend_Registry::get("dbCred");
}
// Do you stuff...
}
}
答案 1 :(得分:0)
更好的解决方法是,
class MyClass {
protected static $a;
static function x(){
self::$a = Zend_Registry::get("dbCred");
return self::$a;
}
}
创建像$ a这样的成员变量,并根据需要从函数中访问它。