【问题标题】:Why does $some_array['an-undefined-key'] throw an error on Mac but not Wamp?为什么 $some_array['an-undefined-key'] 在 Mac 上会抛出错误而不是 Wamp?
【发布时间】:2013-03-25 21:20:17
【问题描述】:

由于某种原因,我的 Mac 显示错误消息“未定义索引:未定义键”,而在带有 WAMP 的 Windows 上,它会优雅地忽略异常。

使用示例:

if ($some_array['an-undefined-key']) {
    // ...
}

是否有改变这种行为的 PHP 配置?

我意识到我可以做到以下几点,但如果可能的话,我宁愿使用上述技术:

if (isset($some_array['an-undefined-key']) && $some_array['an-undefined-key']) {
    // ...
}

【问题讨论】:

  • 你可以做 if (!empty($some_array['an-undefined-key'])) {}se.php.net/manual/en/function.empty.php
  • @fredrik 这似乎确实有效。过去我遇到了empty 的一些问题,这就是我不倾向于使用它的原因,尽管我不记得这些问题是什么:S

标签: php windows macos wamp


【解决方案1】:

是的,您需要调整 error_reportingdisplay_errors 设置,听起来它们在您的两个不同环境之间是不同的。

这里是链接

error_reporting

PHP ini_set - look at first example for display_errors

【讨论】:

    【解决方案2】:

    Mac 上使用已安装 repo 的 PHP 与 WAMP 服务器之间的区别在于 php.ini,尝试编辑脚本并将以下行添加到顶部:

     ini_set('display_errors', '1');
     error_reporting(E_ALL);
    

    这应该在您的脚本中。如果这不是问题,请回复评论,我会做出相应的更改。

    【讨论】:

    • 我尝试在两种环境中都这样做,但在这两种情况下都没有任何区别。一个很大的不同是 Wamp 运行的是更高版本的 PHP。我在网上搜索时找不到任何此类更改。
    【解决方案3】:

    您不应在脚本中添加不必要的行,因为您必须在上线时更改它们。

    编辑您的 php.ini(使用 wampmanager 菜单,以便获得正确的文件)

    left click wampmanager -> PHP -> php.ini
    

    查找这些参数并更改为这些值

    error_reporting = E_ALL
    

    这个在网页上显示错误

    display_errors = On
    error_log = "c:/wamp/logs/php_error.log"
    

    这将使错误记录到error_log指定的文件中,即使它们没有显示在屏幕上

    log_errors = On
    

    WAMP 配置了 XDEBUG,因此您现在应该会在网页中看到橙色的大错误 检查 php.ini 文件底部的这一行。您的系统上的版本号可能会有所不同

    ; XDEBUG Extension
    zend_extension = "c:/wamp/bin/php/php5.X.Y/zend_ext/php_xdebug-2.2.0-5.3-vc9.dll"
    

    【讨论】:

      猜你喜欢
      • 2021-11-20
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 2015-08-05
      相关资源
      最近更新 更多