可能重复:
Parse error: syntax error, unexpected T_FUNCTION line 10 ? help?
Reference - What does this error mean in PHP?
这是导致错误的代码。
$remaining = array_filter($allmodels, function ($var) use ($existmodels) {
return !in_array($var, $existmodels);
});
代码的逻辑是(以下都是数组)
$remaining = $allmodels - $existmodels;
我认为我的PHP版本在服务器中已经过时了。这是问题吗?如何创建类似的代码段?
由于
答案 0 :(得分:3)
注意:当然全球不是一个好习惯
function fil($var) {
global $existmodels;
return !in_array($var, $existmodels);
}
$remaining = array_filter($allmodels, 'fil');
答案 1 :(得分:2)
我是OO编程的忠实粉丝,所以只是为了好玩:
class MyArrayOperations
{
private $base;
public function __construct(array $base)
{
$this->base = $base;
}
public function dif (array $vars )
{
$result = array();
foreach ( $this->base as $base )
if(!in_array($base, $vars))
$result[] = $base;
return $result;
}
$result = (new MyArrayOperations($allmodels))->dif($existmodels);
可以将类放在单独的文件中以供重用,然后只使用oneliner。当然,这个类可以通过一种方便的数组操作进行扩展。
<强>更新强>
我意识到oneliner只能在php 5.4+中使用,所以对于旧版本,请使用:
$arrayops = new MyArrayOperations($allmodels);
$result = $arrayops->dif($existmodels);
结果为Codepad。
答案 2 :(得分:0)
将以下代码添加到htaccess解决了问题
# Use PHP 5.3
AddType application/x-httpd-php53 .php