我有以下字符串:
$string = "The man has {NUM_DOGS} dogs."
我正在通过以下函数运行它来解析它:
function parse_text($string)
{
    global $num_dogs;
    $string = str_replace('{NUM_DOGS}', $num_dogs, $string);
    return $string;
}
parse_text($string);
$num_dogs预设变量在哪里.根据$num_dogs,这可能会返回以下任何字符串:
问题是,在"该男子有1只狗"的情况下,狗是多元化的,这是不希望的.我知道这可以通过不使用parse_text函数来解决,而是执行以下操作:
if($num_dogs = 1){
    $string = "The man has 1 dog.";
}else{
    $string = "The man has $num_dogs dogs.";
}
但是在我的应用程序中,我解析的不仅仅是解决{NUM_DOGS}所有条件而需要很多行.
我需要一种速记方式,我可以写入初始化$string,我可以通过解析器运行,理想情况下,这不会限制我只有两个真/假的可能性.
例如,让我们
$string = 'The man has {NUM_DOGS} [{NUM_DOGS}|0=>"dogs",1=>"dog called fred",2=>"dogs called fred and harry",3=>"dogs called fred, harry and buster"].';
是否清楚最后发生了什么?我试图使用方括号内的部分在垂直条之后开始创建数组,然后将新数组的键与{NUM_DOGS}的解析值进行比较(现在它将是$ …
有许多问题解释如何回应单数或复数变量,但没有人回答我的问题,即如何设置变量以包含所述单数或复数值.
我原以为它会起作用如下:
$bottom="You have favourited <strong>$count</strong> " . $count == 1 ? 'user':'users';
然而,这不起作用.
有人可以建议我如何实现上述目标吗?