gettext.php库中的语法错误表示“;出乎意料的'=';(T_IS_NOT_EQUAL)”;


Syntax error in gettext.php library saying "unexpected '!=' (T_IS_NOT_EQUAL)"

我使用的是库gettext.php(不是标准的php_gettext扩展)和错误

PHP分析错误:语法错误,意外的"!="(T_IS_NOT_EQUAL)在/base/data/home/apps//第1行的libs/gettext/gettext.php(387):eval()代码PHP注意:未定义的偏移量:-1 in/base/data/home/apps//第422行的libs/gettext/gettext.php

不断出现在以下行:

$taskCount = Group::activeTaskCount($db, $class[Database::FIELD_CLASS_ID]);
echo ngettext(
        '%d pending task',
        '%d pending tasks',
        $taskCount);

函数Group::activeTaskCount()执行SQL查询并返回查询的COUNT(*)

我发现$taskCount实际上并没有返回整数值,而是返回了NULLgettext.php库无法处理此问题,并引发了此错误。

我把代码改成

echo ngettext(
        '%d pending task',
        '%d pending tasks',
        $taskCount ?: 0);

以便预见CCD_ 6的情况。