0

私は奇妙な問題を抱えています。基本的に、smarty テンプレート エンジンによって呼び出される関数があり、6 つのパラメーターを受け入れる必要があります。実際の問題は、2つしか受け入れていないことです!

さらに奇妙なことに、func_num_args()その関数内で呼び出すと、私も得られました...しかし、それを見てください

function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false, $charset = 'UTF-8')
{
var_dump($break_words);
var_dump(func_num_args());

if (!$length)
    return '';

if (Tools::strlen($string) > $length)
{
    $length -= min($length, Tools::strlen($etc));
    if (!$break_words && !$middle)
        $string = preg_replace('/\s+?(\S+)?$/u', '', Tools::substr($string, 0, $length+1, $charset));
    return !$middle ? Tools::substr($string, 0, $length, $charset).$etc : Tools::substr($string, 0, $length/2, $charset).$etc.Tools::substr($string, -$length/2, $length, $charset);
}
else
    return $string;
}

これらの他のパラメータは、「ブレークワード」が出力されているため設定されており、それらを変更すると効果が顕著です。本当に奇妙です。解決策はありますか?

ローカル wamp で実行されている PHP バージョン 5.4.3

4

1 に答える 1