【问题标题】:PHP clone keyword vs clone() command line CLI issuesPHP clone 关键字 vs clone() 命令行 CLI 问题
【发布时间】:2009-05-31 17:30:45
【问题描述】:

我一直在使用 clone 关键字来复制对象,如下所示:

$x = clone $obj;

根据the manual

当被浏览器访问时,这可以正常工作。 phpinfo() 报告 PHP 版本 5.2.6。

但是,当通过 cron 或从 CLI 运行时,我得到了

“解析错误:语法错误,意外的 T_VARIABLE”

来自克隆关键字。

php -v 报告 PHP 4.4.9 (cli)

这是版本冲突导致的错误吗?

如果我像这样在我的脚本中使用clone()

$_SESSION['user'] = clone($userObject);

$_SESSION['user'] 出现奇怪的间歇性问题,使用 clone 关键字时不会出现这些问题。

这对任何人都有意义吗?

有什么建议吗?

【问题讨论】:

    标签: oop php


    【解决方案1】:

    似乎clone $foo 关键字仅适用于 PHP 5 及更高版本。

    另外,如果您仍在使用 PHP 4.4.9,那可能是一个更大的问题。

    【讨论】:

    • 感谢您的回复。不运行 CLI 时,版本为 5.2.6。最新的 CLI 版本是什么?我只是在看php.net,我不知道。
    • CGI 和 CLI 的 PHP 版本相同——它们只是调用方式不同,但核心相同。 (我认为最新的是 PHP 5.2.9-2,至少我现在正在使用它。)
    【解决方案2】:

    原来服务器安装了 4 和 5,CLI 报告 4.4.9 仅仅是由于 PATH 顺序:

    来自支持:

    “在 shell 中运行“php -v”命令将始终返回 V4。这是因为我们在您的服务器上安装了两个单独的 PHP。一个用于 V4,一个用于 V5,PHP 4 解释器显示在您的首先是PATH环境变量。如果你想通过shell使用V5,你需要确保使用完整路径"

    【讨论】:

      猜你喜欢
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      • 2020-05-30
      • 1970-01-01
      • 2020-04-18
      • 1970-01-01
      相关资源
      最近更新 更多