PHP:如果$\u获得,则将其加粗 echo'••••天';

PHP:如果$\u获得,则将其加粗 echo'••••天';,php,Php,我有一个“子菜单”,用于显示最新成员。您可以选择在几天内看到站点上的最新用户 我重复了很多,唯一改变的是链接中的天数=30,链接文本中的“30” 现在我想检查一下$_GET[“days”]==2,然后加粗,2 我可以自己做,但那只是复制所有内容,在每个链接中做$\u GET[“days”]==1,$\u GET[“days”]==2,$\u GET[“days”]==3 有没有一种更聪明的方法可以做到这一点,而不用一直重复我自己的话?使用数组 echo '<a href="?view=ne

我有一个“子菜单”,用于显示最新成员。您可以选择在几天内看到站点上的最新用户

我重复了很多,唯一改变的是链接中的天数=30,链接文本中的“30”

现在我想检查一下$_GET[“days”]==2,然后加粗,
2

我可以自己做,但那只是复制所有内容,在每个链接中做$\u GET[“days”]==1,$\u GET[“days”]==2,$\u GET[“days”]==3

有没有一种更聪明的方法可以做到这一点,而不用一直重复我自己的话?

使用数组

echo '<a href="?view=new&days=2">2</a> • <a href="?view=new&days=4">4</a> • <a href="?view=new&days=7">7</a> • <a href="?view=new&days=14">14</a> • <a href="?view=new&days=30">30</a> days';
$days=isset($\u GET['days'])?intval($_GET['days']):2;
foreach(数组(2,4,7,14,30)为$day){
回声';
}
是否使用数组

echo '<a href="?view=new&days=2">2</a> • <a href="?view=new&days=4">4</a> • <a href="?view=new&days=7">7</a> • <a href="?view=new&days=14">14</a> • <a href="?view=new&days=30">30</a> days';
$days=isset($\u GET['days'])?intval($_GET['days']):2;
foreach(数组(2,4,7,14,30)为$day){
回声';
}
您可以这样做:

$days = isset($_GET['days']) ? intval($_GET['days']) : 2;

foreach(array(2,4,7,14,30) as $day) {
echo '<a href="?view=new&days='.$day.'">'.($day===$days ? '<strong>'.$day.'</strong>' : $day).'</a>';
}
事实上,我也希望如此。

您可以这样做:

$days = isset($_GET['days']) ? intval($_GET['days']) : 2;

foreach(array(2,4,7,14,30) as $day) {
echo '<a href="?view=new&days='.$day.'">'.($day===$days ? '<strong>'.$day.'</strong>' : $day).'</a>';
}

事实上,我也希望如此。

我希望有一个包含所有值的数组:

ul {
    margin: 0;
    padding: 0;
}
ul > li {
    list-style-type: none;
    float: left;
}
ul > li + li:before {
    content: '•';
    margin: 0 0.35em;
}
并按如下方式创建列表:

$days = array(2, 4, 7, 14, 30);

我将拥有一个包含所有值的数组:

ul {
    margin: 0;
    padding: 0;
}
ul > li {
    list-style-type: none;
    float: left;
}
ul > li + li:before {
    content: '•';
    margin: 0 0.35em;
}
并按如下方式创建列表:

$days = array(2, 4, 7, 14, 30);
做一个循环:

<ul>
<?php foreach($days as $day): ?>
    <li>
    <a href="?view=new&days=<?php echo $day ?>">
        <?php echo (isset($_GET['days']) && $_GET['days'] == $day) "<strong>$day</strong>" : $day; ?>
    </a>
    </li>
<?php endforeach;?>
</ul>
$days=数组(2,4,7,30);
foreach($天作为$天){
$label=$\u GET['days']==$day?“”.$day.”:$day;
回声';
}
另外,您应该使用CSS类,而不是使用强标记:

$days = array(2, 4, 7, 30);
foreach($days as $day){
  $label = $_GET['days'] == $day ? '<strong>'.$day.'</strong>' : $day;
  echo '<a href="?view=new&days='.$day.'">'.$label.'</a>';
}
$days=数组(2,4,7,30);
foreach($天作为$天){
$attr=$\u GET['days']==$day?'class=“active”:'';
回声';
}
CSS应该是这样的:

$days = array(2, 4, 7, 30);
foreach($days as $day){
  $attr = $_GET['days'] == $day ? ' class="active"' : '';
  echo '<a href="?view=new&days='.$day.'"'.$attr.'>'.$day.'</a>';
}

.active{font-weight:bold}
通过这种方式,您可以在不修改PHP代码的情况下更改活动链接的外观

<ul>
<?php foreach($days as $day): ?>
    <li>
    <a href="?view=new&days=<?php echo $day ?>">
        <?php echo (isset($_GET['days']) && $_GET['days'] == $day) "<strong>$day</strong>" : $day; ?>
    </a>
    </li>
<?php endforeach;?>
</ul>
$days=数组(2,4,7,30);
foreach($天作为$天){
$label=$\u GET['days']==$day?“”.$day.”:$day;
回声';
}
另外,您应该使用CSS类,而不是使用强标记:

$days = array(2, 4, 7, 30);
foreach($days as $day){
  $label = $_GET['days'] == $day ? '<strong>'.$day.'</strong>' : $day;
  echo '<a href="?view=new&days='.$day.'">'.$label.'</a>';
}
$days=数组(2,4,7,30);
foreach($天作为$天){
$attr=$\u GET['days']==$day?'class=“active”:'';
回声';
}
CSS应该是这样的:

$days = array(2, 4, 7, 30);
foreach($days as $day){
  $attr = $_GET['days'] == $day ? ' class="active"' : '';
  echo '<a href="?view=new&days='.$day.'"'.$attr.'>'.$day.'</a>';
}

.active{font-weight:bold}
这样,您以后就可以在不修改PHP代码的情况下更改活动链接的外观

这是我的5美分。
这里的每个人都在谈论MVC,但几乎没有人在他们的示例中使用它

首先,我们必须准备所有必要的数据

<style type="text/css">
 .active{ font-weight: bold}
</style>

然后使用模板输出
(部分基于本的好建议)

至于•字符,所有外观都应该使用CSS功能。

这是我的5美分。
这里的每个人都在谈论MVC,但几乎没有人在他们的示例中使用它

首先,我们必须准备所有必要的数据

<style type="text/css">
 .active{ font-weight: bold}
</style>

然后使用模板输出
(部分基于本的好建议)



至于•角色,所有外观都应该使用CSS功能。

很好的解决方案。为了扩大我的知识面,我问了几个问题。你在$days里做什么?布尔值?为什么:2?并且每个$daysArray作为&$val,
一起构成条件运算符。它将语句分为三部分:条件、条件为真时的值和条件为假时的值。
cond?expr1:expr2
是条件运算符(只需通过谷歌搜索即可)。使用
&$val
使
$val
引用
$daysArray
中的原始值。
&$val
中的
&
使
$val
引用数组中的实际值。执行此操作时,更改
$val
将更改数组中的值。如果没有它,您只需更改值的本地副本,而不修改数组。投票失败的原因是什么?这有什么问题吗?很好的解决方案。为了扩大我的知识面,我问了几个问题。你在$days里做什么?布尔值?为什么:2?并且每个$daysArray作为&$val,
一起构成条件运算符。它将语句分为三部分:条件、条件为真时的值和条件为假时的值。
cond?expr1:expr2
是条件运算符(只需通过谷歌搜索即可)。使用
&$val
使
$val
引用
$daysArray
中的原始值。
&$val
中的
&
使
$val
引用数组中的实际值。执行此操作时,更改
$val
将更改数组中的值。如果没有它,您只需更改值的本地副本,而不修改数组。投票失败的原因是什么?这有什么问题吗?虽然我非常喜欢这种方法,
isset($\u GET['days'])
在视图中似乎放错了位置。还有
echo
,因为这是数据准备。在调用模板之前,所有数据都应该准备好。否则,您将破坏业务/表示逻辑分离的整个概念。@Col:没有提到任何分离。。。我不知道OP的其他代码。我不知道他是否在使用MVC。所以我用给定的代码给他一个最接近的可能解。我知道你喜欢短的开放标记,但这并不意味着
echo
放错地方了……我不是指echo变量,而是包含HTML标记的“长”echo。我不怀疑你的解决方案,只留下我的评论。虽然我非常喜欢这种方法,
isset($\u GET['days'])
在视图中似乎放错了位置。以及
echo