【问题标题】:PHP Object Operator ( -> ) Not Working on Windows/IISPHP 对象运算符 ( -> ) 在 Windows/IIS 上不起作用
【发布时间】:2017-07-13 20:00:03
【问题描述】:

在 PHP 中,有没有对象运算符的替代方法,或者对象运算符不能在 Windows/IIS 环境中工作的原因?

我正在尝试将 PHP Web 应用程序从 Linux/Apache/MySQL 迁移到 Windows/IIS/MySQL(IIS10,PHP 7.1.1),但对象运算符似乎在 Windows 环境中不起作用。为了使网站的某些部分正常工作,我必须将所有数组引用从

$query_rs->id;

$query_rs['id'];

我也很关心对象操作符在函数中的使用

$Member->save();

和其他对象属性访问,如

$this->id

感谢您抽出宝贵时间,我在此处或网络上的其他任何地方都没有找到关于此问题的太多信息。

【问题讨论】:

  • 服务器日志中是否有任何可能提供线索的错误?
  • 当您说它不起作用时,发生了什么?对象和数组是不同的,您所展示的是对象已成为数组。没有理由说对象不能在 IIS 中工作,毕竟它仍然是 php。
  • 显然这是一个 IIS 错误。我从未使用过它,我不明白为什么其他人会使用它,除非出于某种奇怪的原因,您的生产服务器也是 Windows。我建议安装 wamp 或 xampp。这不是真正的解决方案,只是一种解决方法。很抱歉没能帮到您。
  • 您使用 PDO 吗?你检查过 PDO 设置吗? stackoverflow.com/a/4386731/1461181
  • 我严重怀疑 IIS 是否会自动将所有对象转换为数组。你只是有一个数组而不是一个对象。

标签: php windows iis


【解决方案1】:

我正在从 Linux/Apache/MySQL(Apache 2.2、MySQL 5.5、PHP 5.4)迁移到 Windows/IIS/MySQL(Windows Server 2012、IIS 10、MySQL 5.5、PHP 7.1)的 PHP Web 应用程序使用该对象运算符 -> 成功访问 .php 文件和内联 PHP 代码中的数组项。在新的 WIMP 环境中,这不起作用并导致 500 内部服务器错误。我不得不从语法中重新配置所有数组引用

$query_rs->id;

$query_rs['id'];

在应用程序运行之前。我做了许多测试来隔离问题,并确定对象运算符的其他常规用法可以按预期工作。我相信这是由 PHP 版本更新或 IIS 引起的问题,因为我在使用 IIS 时遇到了一些其他问题。

【讨论】:

    猜你喜欢
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 2022-06-21
    • 2018-08-22
    相关资源
    最近更新 更多