【问题标题】:PHP: For loop, how do I set a variable as a maximum?PHP:For循环,如何将变量设置为最大值?
【发布时间】:2020-03-10 23:11:15
【问题描述】:

我正在尝试制作一个循环,让我可以在网站上放置星标,在网站上显示评级(1 到 5),你可以用字段记录下来。但是,我不知道如何正确转换字段。

我正在使用带有自定义字段类型的 WordPress,这是我定义的变量。

我有一个从其他地方得到的变量,我尝试了以下两种方法:

<?php
    $star = intval(the_field('rating'));
    for ($i=0; $i < $star; $i++){
        intval(the_field('rating'));
    }
?>

第二个:

<?php
    $star = number_format(the_field('rating');
    for ($i=0; $i < $star; $i++){
        number_format(the_field('rating'));
    }
?>

非常感谢您提前提供的帮助。

【问题讨论】:

  • the_field('rating')的值是多少,你想显示什么?
  • 在我正在测试它的页面上是'4',我希望能够显示星星以使页面的评级在最后可见我应该能够显示 the_field( 'rating') 应该是显示的满星数,1 - 该数字是显示的空星数
  • 显示 1 星的代码是什么?
  • 这也是循环应该做的事情,只需通过一次满星,然后再通过 4 颗空星,总会有至少 1 颗满星,最多 5 颗(我已经确保)

标签: php for-loop type-conversion


【解决方案1】:

首先the_field 回显该值,您需要get_field 来返回该值。然后只需重复您使用的任何字符串来显示星形或空星形:

$stars = get_field('rating');
echo str_repeat('*', $stars) . str_repeat('O', 5-$stars);

通过循环检查您的计数器是否小于或等于星级:

$stars = get_field('rating');

for ($i=1; $i <= 5; $i++){
    echo ($i <= $stars) ? "*" : "O";
}

【讨论】:

  • 这仍然给我带来了与我的循环相同的问题。第一个完成一次,第二个完成 5 次谢谢
  • 我不知道你在问什么。它可以工作3v4l.org/SqDBS
  • 是的,如果你输入一个数字,它工作得很好,但它不适用于 the_field('rating'),我的问题是如何让它工作
  • var_dump(the_field('rating')); 我们可以看到。
  • 它返回:[我输入的数字]NULL,例如:4NULL
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-05
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 2021-07-11
相关资源
最近更新 更多