相关疑难解决方法(0)

以一种识别自定义if语句的方式解析纯文本

我有以下字符串:

$string = "The man has {NUM_DOGS} dogs."
Run Code Online (Sandbox Code Playgroud)

我正在通过以下函数运行它来解析它:

function parse_text($string)
{
    global $num_dogs;

    $string = str_replace('{NUM_DOGS}', $num_dogs, $string);

    return $string;
}

parse_text($string);
Run Code Online (Sandbox Code Playgroud)

$num_dogs预设变量在哪里.根据$num_dogs,这可能会返回以下任何字符串:

  • 这个男人有一只狗.
  • 这个男人有2只狗.
  • 这个男人有500只狗.

问题是,在"该男子有1只狗"的情况下,是多元化的,这是不希望的.我知道这可以通过不使用parse_text函数来解决,而是执行以下操作:

if($num_dogs = 1){
    $string = "The man has 1 dog.";
}else{
    $string = "The man has $num_dogs dogs.";
}
Run Code Online (Sandbox Code Playgroud)

但是在我的应用程序中,我解析的不仅仅是解决{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"].';
Run Code Online (Sandbox Code Playgroud)

是否清楚最后发生了什么?我试图使用方括号内的部分在垂直条之后开始创建数组,然后将新数组的键与{NUM_DOGS}的解析值进行比较(现在它将是$ …

php regex arrays

11
推荐指数
3
解决办法
1271
查看次数

对变量进行单数或复数设置.PHP

有许多问题解释如何回应单数或复数变量,但没有人回答我的问题,即如何设置变量以包含所述单数或复数值.

我原以为它会起作用如下:

$bottom="You have favourited <strong>$count</strong> " . $count == 1 ? 'user':'users';
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用.

有人可以建议我如何实现上述目标吗?

php variables singular

2
推荐指数
1
解决办法
1853
查看次数

标签 统计

php ×2

arrays ×1

regex ×1

singular ×1

variables ×1