gettext.php 库中的语法错误说 "unexpected '!=' (T_IS_NOT_EQUAL)"

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

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

PHP Parse error: syntax error, unexpected '!=' (T_IS_NOT_EQUAL) in /base/data/home/apps/.../libs/gettext/gettext.php(387) : eval()'d code on line 1 PHP Notice: Undefined offset: -1 in /base/data/home/apps/.../libs/gettext/gettext.php on line 422

继续出现在以下行中:

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

函数 Group::activeTaskCount() 执行一个 SQL 查询和 returns 一个 COUNT(*) 查询。

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

我把代码改成了

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

以便预见 NULL 情况。