Php symfony 1.4-警告:遇到非数字值

Php symfony 1.4-警告:遇到非数字值,php,symfony1,Php,Symfony1,警告:在C:\Program Files(x86)\Ampps\www\Symfony\u project\lib\vendor\symfony1\lib\yaml\sfyamline.php(138):运行时在第1行创建的函数中遇到非数字值 使用PHP7.1 if ( (1 == count($keys) && '0' == $keys[0]) || Line 138-> (count($keys) > 1 && a

警告:在C:\Program Files(x86)\Ampps\www\Symfony\u project\lib\vendor\symfony1\lib\yaml\sfyamline.php(138):运行时在第1行创建的函数中遇到非数字值

使用PHP7.1

if (
      (1 == count($keys) && '0' == $keys[0])
      ||
    Line 138->  (count($keys) > 1 && array_reduce($keys, create_function('$v,$w', 'return (integer) $v + $w;'), 0) == count($keys) * (count($keys) - 1) / 2))
23 0.1704 3586632__lambda_func()…\sfYamlInline.php:138


如何修复?

有一些symfony1的分叉与PHP7.1兼容


在这种情况下,您可以通过更改
'return(integer)$v+$w;'
返回(整数)$v+(整数)$w;'

Symfony 1已经有5年没有维护了,并且从那时起就不能与PHP版本完全兼容,因此您很容易出现这样的错误。除了自己修补源代码之外,您没有太多选择。@chris85这是
create\u function
的正确语法(自PHP5.3问世以来,不应该有人使用它),您可能想看看它,它是PHP7.1中SF1symfony1的最新分支。为什么?@iainn啊,它做了一个
eval