PHP5.3.2-1代码不适用于PHP5.3.8
我的代码在ubuntu上的PHP5.3.2-1中运行良好。我最近将它移植到windows,其中安装了XAMPP。它使用PHP5.3.8。我犯了一个错误PHP5.3.2-1代码不适用于PHP5.3.8,php,yii,xampp,Php,Yii,Xampp,我的代码在ubuntu上的PHP5.3.2-1中运行良好。我最近将它移植到windows,其中安装了XAMPP。它使用PHP5.3.8。我犯了一个错误 Non-static method Following::getUpdates() should not be called statically, assuming $this from incompatible context 还有什么路要走? 我是否要更正代码以替换代码中每个位置的声明或 有没有办法模拟旧的行为(带有php.ini文件的
Non-static method Following::getUpdates() should not be called statically, assuming $this from incompatible context
还有什么路要走?
我是否要更正代码以替换代码中每个位置的声明或有没有办法模拟旧的行为(带有php.ini文件的PHP5.3.2),因为我不确定更正后还会有多少错误出现在我的脸上 更新(代码示例) 在第行获取错误
$dataProvider=Following::getUpdates(yii::app()->user->id)代码>
我正在使用yii框架。您的新安装可能只包含E\u STRICT
警告,而您以前的安装没有:
静态调用非静态方法会生成E\u STRICT
级别警告
这意味着您可以通过在中禁用E_STRICT
来消除警告,但在我看来,您应该修复有问题的代码。您正在执行$This::DoSomething()而不是MyObject::DoSomething()?我已使用静态对象调用了一个非静态函数。但代码在旧版本中运行良好。删除E_STRICT有效。我想知道为什么第一次它不起作用。我重新安装了XAMPP,这次它正常工作了。也许我上次一定是搞坏了ini文件。ThanksI在一个地方使用了按引用调用,但也不推荐“按引用传递调用时间已不推荐”。除了返回值之外,还有其他解决方法吗?@Terminal返回值听起来是一个非常好且干净的主意,但是请看一看,确保它是干净的,但只是避免更改代码。再次感谢,更改语法有效:)
public function actionIndex(){
if(yii::app()->user->isGuest){
$this->render('guestIndex');
}
else{
$dataProvider = Following::getUpdates(yii::app()->user->id); //genrerate data for the homepage of user i.e updates from followers
$this->render('userIndex',array('dataProvider'=>$dataProvider));
}
}