这个错误在PHP 5.4.3中引发,我发现的解决方案是隐藏错误.
error_reporting(E_ALL ^ E_STRICT);
Run Code Online (Sandbox Code Playgroud)
但我想解决它,而不是隐藏它.你能解释为什么会抛出这个错误以及如何解决它吗?
这是错误:
严格标准:在第33行的/home/template/public_HTML/project/activecollab/angie/classes/VisanaObject.class.php中为类VisanaObject重新定义已定义的构造函数
这是该类的代码:
class VisanaObject {
/**
* Object constructor
*
* @param void
* @return Object
*/
function VisanaObject() {
$args = func_get_args();
// Call constructor, with or without args
if(is_array($args)) {
call_user_func_array(array(&$this, '__construct'), $args);
} else {
$this->__construct();
} // if
} // VisanaObject
/**
* Construct the VisanaObject
*
* @param void
* @return VisanaObject
*/
function __construct() {
} // __construct
} // VisanaObject
Run Code Online (Sandbox Code Playgroud)
Mar*_*c B 10
这是一个PHP回归.PHP使用类名作为构造函数方法,并且没有正式的__construct()魔术方法.现在有__construct,但是"class name as function = constructor"是为了向后兼容而保留的.
所以你有了
class foo {
function foo() { ... this is a constructor }
function __construct() { .. this is another constructor ... }
}
Run Code Online (Sandbox Code Playgroud)
重命名您的VisanaObject方法,或将其代码移入__construct().
| 归档时间: |
|
| 查看次数: |
5141 次 |
| 最近记录: |