升级至 php 5.3.6

升级至 php 5.3.6

我刚刚将开发箱升级到OSX Lion,它有php 5.3.6(来自Snow Leopard)。

现在我用 Yii 制作的网站坏了。我如何知道哪些代码现在坏了,而不用逐一找出它们?为什么下面的代码坏了?我可以在 php.ini 文件中打开某些东西来克服这些问题吗?我需要重新开始工作,但不想直接回到 Snow Leopard 来做这件事。非常感谢帮助/指导。

以下是一些下列错误:

使用未定义的常量样式 - 假定为“样式”

'htmlOptions'=>array(style=>'cursor: pointer;'),

通过包含“style”来修复

'htmlOptions'=>array('style'=>'cursor: pointer;'),

尝试获取非对象(在 CJuiTabs 内)的属性

'Title' =>$this->renderPartial("_details", array('model' => $model), $this),

不知道如何修复这个问题

使用未定义的常数 Y - 假定 'Y' (在 CGridView 数据提供程序中)

$dataProvider = 
    new CActiveDataProvider('Bus', array(
          'criteria'=>array(
               'with' => array(
                  'address' => array(
                        'on'=>'busAddresses.Id='.$model->Id.' 
                               AND busAddresses.IsPhysical="'.Y.'"',

不知道如何修复这个问题

答案1

由于您在其他地方暗示您收到的错误消息比您发布的消息更多,所以我假设您未发布的错误之一是这样的:

警告:无法修改标头信息 - 标头已发送

由于您看到的所有这些消息的根本原因在新版本的 PHP 下没有任何不同,因此配置设置可能是造成这种差异的原因。特别是,该display_errors设置仅控制是否将所有错误、警告和通知的消息打印到屏幕上。

Apple 的默认 php.ini 文件将 display_errors 设置为 Off,但您需要将 /etc/php.ini.default 移动到 /etc/php.ini 才能使该文件生效。/etc/php.ini 不会在 OS X 升级中保留,因此丢失此设置是有道理的。

答案2

 AND busAddresses.IsPhysical="'.Y.'"',

Y在您的情况下是一个字符串,因此将其用作字符串:

 AND busAddresses.IsPhysical="Y"',

相关内容