PHP 版本 5.6.17 意外 T function/anonymous 函数错误
PHP version 5.6.17 unexpected T function/anonymous function error
我在 php 5.6.13 的 Win 7 上有一个本地 Drupal 站点 运行 MAMP。我的实时站点有 php 5.6.17。我在本地站点上没有问题,但在实时站点上,我从 drupal.org.
下载的以下代码出现意外的 T 函数错误
function redhen_activity_message_types() {
$message_types = array_keys(message_type_load());
$filtered = array_filter($message_types, function($var) {
return strpos($var, 'redhen_') !== FALSE;
});
return $filtered;
}
以 $filtered 开头的行是错误消息指向的行。
我对 php 知之甚少,但一直在网上搜索并发现一些叫做匿名函数的东西在旧版本的 php 上不起作用。 php 的版本略有不同导致了这个问题吗?我该如何解决?
谢谢!
anonymous function 是从该行代码开始定义的函数:
function($var) {
return strpos($var, 'redhen_') !== FALSE;
}
我没有发现该功能有任何明显的错误,而且 Redhen CRM 得到了足够多的使用,如果它明显不正确,其他人可能已经 运行 遇到问题。虽然在与生产环境相同的版本下进行测试总是好的,但 5.6.13 和 5.6.17 之间引入 PHP 的错误不太可能导致此问题。
要找到根本原因,请尝试以下操作:
- 检查以确保您认为 运行ning 在生产中的 PHP 版本实际上是 运行ning。我最近看到几个环境,人们在 php-cli 下的 运行ning 版本与 Web 服务器上的版本不同,这意味着命令行上的 运行ning
php --version
给出了错误的答案。使用 phpinfo()
调用来验证版本。
- 检查 Redhen issue queue 是否有其他人遇到同样的问题。
- 更新您的测试机器以匹配生产。一旦您确定生产是您认为的版本,请设置您的开发环境以匹配并查看问题是否再次出现。如果是,请尝试前进到更新的次要版本并查看错误是否再次消失。
我在 php 5.6.13 的 Win 7 上有一个本地 Drupal 站点 运行 MAMP。我的实时站点有 php 5.6.17。我在本地站点上没有问题,但在实时站点上,我从 drupal.org.
下载的以下代码出现意外的 T 函数错误function redhen_activity_message_types() {
$message_types = array_keys(message_type_load());
$filtered = array_filter($message_types, function($var) {
return strpos($var, 'redhen_') !== FALSE;
});
return $filtered;
}
以 $filtered 开头的行是错误消息指向的行。
我对 php 知之甚少,但一直在网上搜索并发现一些叫做匿名函数的东西在旧版本的 php 上不起作用。 php 的版本略有不同导致了这个问题吗?我该如何解决?
谢谢!
anonymous function 是从该行代码开始定义的函数:
function($var) {
return strpos($var, 'redhen_') !== FALSE;
}
我没有发现该功能有任何明显的错误,而且 Redhen CRM 得到了足够多的使用,如果它明显不正确,其他人可能已经 运行 遇到问题。虽然在与生产环境相同的版本下进行测试总是好的,但 5.6.13 和 5.6.17 之间引入 PHP 的错误不太可能导致此问题。
要找到根本原因,请尝试以下操作:
- 检查以确保您认为 运行ning 在生产中的 PHP 版本实际上是 运行ning。我最近看到几个环境,人们在 php-cli 下的 运行ning 版本与 Web 服务器上的版本不同,这意味着命令行上的 运行ning
php --version
给出了错误的答案。使用phpinfo()
调用来验证版本。 - 检查 Redhen issue queue 是否有其他人遇到同样的问题。
- 更新您的测试机器以匹配生产。一旦您确定生产是您认为的版本,请设置您的开发环境以匹配并查看问题是否再次出现。如果是,请尝试前进到更新的次要版本并查看错误是否再次消失。