【问题标题】:Unexpected T_FUNCTION, but where?意外的 T_FUNCTION,但在哪里?
【发布时间】:2012-09-30 15:22:38
【问题描述】:

我已经让我的网站在我的本地机器上完美运行。但是,在迁移到生产环境时,我遇到了“Unexpected T_FUNCTION ...”错误。

我已经删除了以下代码之前的所有内容,但仍然收到第 3 行报告的错误。我只是想不通。

<?php
// Auth Check.
$authCheck = function() use ($app) {         <---- Line 3

【问题讨论】:

  • 你用的是什么版本的PHP??

标签: php


【解决方案1】:

你得到:

解析错误:语法错误,[...][...] 中的意外 T_FUNCTION 在第 4

因为您使用的 PHP 版本低于 PHP 5.3.0,请升级您的 php 或尝试使用 globals

PHP 5.3.0+

$app = "Hello Wolrd";
$authCheck = function () use($app) {
    echo $app;
};
$authCheck();

Below PHP 5.3.0

$app = "Hello Wolrd";
$authCheck = function () {
    global $app;
    echo $app;
};
$authCheck();

两者都会输出

  Hello Wolrd

【讨论】:

  • 谢谢大家。我觉得很愚蠢。我同时在我的测试和生产站点上运行 phpinfo,并且正在检查错误的页面以获取有关我的 PHP 版本的信息。事实是我确实在生产服务器上运行 PHP
  • 现在我对PHP 5.4PHP 5.3 犯了同样的错误......不客气
  • 其实第二个样本triggers the same error。这与global 无关,也与匿名函数中use 的使用无关。对于 5.3.0 以下的任何版本,您可以考虑使用 create_function。或者升级!
猜你喜欢
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 2012-06-08
  • 2015-12-17
  • 2016-01-19
  • 1970-01-01
  • 2014-02-09
相关资源
最近更新 更多