为什么条件在 php 满足后没有返回?
Why is the condition not returning after it met on php?
我想出了以下代码:
<?php
if (block_rows('option') : while ( block_rows( 'option' ) ) : block_row( 'option' );
if ( !isset($id) ) { // meet only on the first iteration
$a = 1;
}
elseif ( isset($id) && $id == block_sub_value('ID') ) {
$a++;
}
elseif ( isset($id) && $id != block_sub_value('ID') ) {
$a = 2;
}
$id = block_sub_value('ID');
?>
<h1> Option - <?=$id;?> </h1> // prints only the ID
<p> Sub Option - <?=$id . ' - ' . $a;?> <p> prints ID and the $a
<?php endwhile; endif;?>
我要构建的逻辑是:
- 如果是循环的第一次迭代,$a 必须等于 1.Period.
- 如果 $id 和 $a 相等,则将 $a 的值增加 1。
- 最后,如果 $id 和 $a 不同,$a 必须等于 2。
我有一个列表,其中包含一些具有 $id 编号的 parent 标题和具有 parent $id 编号以及 $a 编号的 child 内容。类似于:
没看到效果好的地方其实是第一个条件。第一个 $a 以 2 开头,而不是 1,几乎就像在满足第一个条件后,函数继续测试其他人,替换 $a 值。我不知道为什么会这样。
一旦开始 while 循环并通过第一次迭代,isset($id) 为真,因此不会重置为 1
因此更改部分:
<?php
if (block_rows('option') : while ( block_rows( 'option' ) ) : block_row( 'option' );
if ( !isset($id) ) { // meet only on the first iteration
$a = 1;
}
// the rest of the code
类似于:
<?php
// set initial $oldid to be a value which is not possible
$oldid="-100";
if (block_rows('option') : while ( block_rows( 'option' ) ) : block_row( 'option' );
if ( $oldid !=$id ) { // meet only on the first iteration
$oldid=$id;
$a = 1;
}
// the rest of the code (please further amend if logically requires)
这只是其中一种方式。希望它能给你一些想法
我想出了以下代码:
<?php
if (block_rows('option') : while ( block_rows( 'option' ) ) : block_row( 'option' );
if ( !isset($id) ) { // meet only on the first iteration
$a = 1;
}
elseif ( isset($id) && $id == block_sub_value('ID') ) {
$a++;
}
elseif ( isset($id) && $id != block_sub_value('ID') ) {
$a = 2;
}
$id = block_sub_value('ID');
?>
<h1> Option - <?=$id;?> </h1> // prints only the ID
<p> Sub Option - <?=$id . ' - ' . $a;?> <p> prints ID and the $a
<?php endwhile; endif;?>
我要构建的逻辑是:
- 如果是循环的第一次迭代,$a 必须等于 1.Period.
- 如果 $id 和 $a 相等,则将 $a 的值增加 1。
- 最后,如果 $id 和 $a 不同,$a 必须等于 2。
我有一个列表,其中包含一些具有 $id 编号的 parent 标题和具有 parent $id 编号以及 $a 编号的 child 内容。类似于:
没看到效果好的地方其实是第一个条件。第一个 $a 以 2 开头,而不是 1,几乎就像在满足第一个条件后,函数继续测试其他人,替换 $a 值。我不知道为什么会这样。
一旦开始 while 循环并通过第一次迭代,isset($id) 为真,因此不会重置为 1
因此更改部分:
<?php
if (block_rows('option') : while ( block_rows( 'option' ) ) : block_row( 'option' );
if ( !isset($id) ) { // meet only on the first iteration
$a = 1;
}
// the rest of the code
类似于:
<?php
// set initial $oldid to be a value which is not possible
$oldid="-100";
if (block_rows('option') : while ( block_rows( 'option' ) ) : block_row( 'option' );
if ( $oldid !=$id ) { // meet only on the first iteration
$oldid=$id;
$a = 1;
}
// the rest of the code (please further amend if logically requires)
这只是其中一种方式。希望它能给你一些想法