PHP:非静态方法称为静态,这怎么可能?

时间:2011-05-20 11:33:56

标签: php

无论如何都要调用非静态方法,作为静态方法吗?

我找到了这个电话:

$handler =& ProfileHandler_Array::getInstance(
    array(  'username'        => $this->api_username,
            'certificateFile' => $this->api_certificate,
            'signature'       => $this->api_signature,
            'subject'         => $this->api_subject,
            'environment'     => (($this->api_test)?'Sandbox':'Live')
    )

这里有getInstance()方法:

function getInstance($id, &$handler)
{
    $classname = __CLASS__;
    $inst = new $classname($id, $handler);

    $result = $inst->_load();
    if (PayPal::isError($result)) {
        return $result;
    }

    $result = $inst->loadEnvironments();
    if (PayPal::isError($result)) {
        return $result;
    }

    return $inst;
}

它没有任何错误!!!!

更多线索:它可能是旧代码。

此致

1 个答案:

答案 0 :(得分:2)

您的代码应该给出错误,它不会显示。 (error_reporting设置为E_ALL | E_STRICT吗?display_errors是否已启用?)

来自the manual

  

静态调用非静态方法会生成E_STRICT级警告。