PHP数组计数-IF/Elseif
尝试编写一个简单的PHP函数,它接受一个数组,然后根据数组的计数吐出某些代码。在我的测试用例中,两个用户中,第一个PHP数组计数-IF/Elseif,php,html,wordpress,if-statement,Php,Html,Wordpress,If Statement,尝试编写一个简单的PHP函数,它接受一个数组,然后根据数组的计数吐出某些代码。在我的测试用例中,两个用户中,第一个(如果)发生了,而第二个应该发生了 代码如下: 我认为问题在于: if(count($users)='1'| |'3'){ if(count($users)='2'| |'4'){ 但我不确定 <?php $template_directory = get_template_directory_uri(); $users = get_users();
(如果)发生了,而第二个应该发生了
代码如下:
我认为问题在于:
if(count($users)='1'| |'3'){
if(count($users)='2'| |'4'){
但我不确定
<?php
$template_directory = get_template_directory_uri();
$users = get_users();
if (count($users) == '1' || '3') {
foreach ($users as $user) {
if ($user->displayname != '') {
echo '<div class="col-lg-4 col-md-4 col-sm-4">';
echo '<div class="selection-member">';
echo '<div class="individual-pic">'.get_avatar($user).'</div>';
echo '<h4 class="selection-name">' .$user->displayname. '</h5>';
echo '<h5 class="grey-tagline">'.$user->jobtitle.'</h5>';
echo '<div class="selection-text quick-center">';
echo '<p>' . $user->desc . '</p>';
echo '</div> <!-- end selection-text -->';
echo '<div class="team-twitter">';
echo '<a href="http://twitter.com/'.$user->twitter.'"><svg width="36" height="36">';
echo '<image xlink:href="'.get_template_directory_uri().'/images/team-twitter.svg" src="'.get_template_directory_uri().'/images/team-twitter.png" width="36" height="36"/>';
echo '</svg></a>';
echo '</div> <!-- end team-twitter -->';
echo '</div> <!-- end selection-member -->';
echo '</div> <!-- end col-lg-4 -->';
}
}
}
elseif (count($users) == '2' || '4') {
foreach ($users as $user) {
if ($user->displayname != '') {
echo '<div class="col-lg-4 col-lg-offset-1 col-md-6 col-sm-6">';
echo '<div class="selection-member">';
echo '<div class="individual-pic">'.get_avatar($user).'</div>';
echo '<h4 class="selection-name">' .$user->displayname. '</h5>';
echo '<h5 class="grey-tagline">'.$user->jobtitle.'</h5>';
echo '<div class="selection-text quick-center">';
echo '<p>' . $user->desc . '</p>';
echo '</div> <!-- end selection-text -->';
echo '<div class="team-twitter">';
echo '<a href="http://twitter.com/'.$user->twitter.'"><svg width="36" height="36">';
echo '<image xlink:href="'.get_template_directory_uri().'/images/team-twitter.svg" src="'.get_template_directory_uri().'/images/team-twitter.png" width="36" height="36"/>';
echo '</svg></a>';
echo '</div> <!-- end team-twitter -->';
echo '</div> <!-- end selection-member -->';
echo '</div> <!-- end col-lg-4 -->';
echo '<div class="col-lg-1"></div>';
}
}
}
?>
谢谢
编辑:非常感谢各位。我是PHP新手。谢谢!数组的count()
始终是整数
但是您将它与字符串进行了比较,并且使用了严格的比较==
。这根本不起作用
if(count($array)==2)
在计数为2时确实足以执行操作
第二个问题:如果要将计数与两个值进行比较,则必须编写两个比较,或者使用不同的构造
if(count($array)==2 | | count($array)==4)
if(count($array)==4)
if(在_array(count($array),array(2,4))中)
是更复杂的版本,可以扩展到您想要的任意多个值
或者,您可以使用开关数组的计数()
始终为整数
但是您将它与字符串进行了比较,并且使用了严格的比较==
。这根本不起作用
if(count($array)==2)
在计数为2时确实足以执行操作
第二个问题:如果要将计数与两个值进行比较,则必须编写两个比较,或者使用不同的构造
if(count($array)==2 | | count($array)==4)
if(count($array)==4)
if(在_array(count($array),array(2,4))中)
是更复杂的版本,可以扩展到您想要的任意多个值
或者,您可以使用开关
这有两个问题:
if (count($users) === '1' || '3') {
首先,您将$users
与包含1
的字符串进行比较-这就是单引号的含义。因为您使用的是==
,所以它还将比较类型,这意味着您无法获得匹配
其次,if
语句的第二部分将始终解析为true。它实际上是:
if ('3') {
您正在检查字符串文字“3”是否为true;显示PHP将转换为“false”的内容,并且具有除0以外的任何值的字符串将为true
您需要将if语句编写为:
if (count($users) == 1 || count($users) == 3) {
这有两个问题:
if (count($users) === '1' || '3') {
首先,您将$users
与包含1
的字符串进行比较-这就是单引号的含义。因为您使用的是==
,所以它还将比较类型,这意味着您无法获得匹配
其次,if
语句的第二部分将始终解析为true。它实际上是:
if ('3') {
您正在检查字符串文字“3”是否为true;显示PHP将转换为“false”的内容,并且具有除0以外的任何值的字符串将为true
您需要将if语句编写为:
if (count($users) == 1 || count($users) == 3) {
您的if语句有两个问题:
您可以使用==
运算符进行严格的类型检查。引号中的'2'
是一个字符串,它根本不是一个整数,因此您无法将其与计数的结果进行比较,这是一个整数,至少在期望得到有用的结果时是这样。字符串从不严格等于整数。这将始终计算为false
,因此请删除引号,或使用=
运算符
你写的count…='2'| | | 4'
的正确语法是count…='2'| | | count…='4'
。在第一种情况下,你基本上说“要么count='2'
要么'4'
(或两者)必须为true
”。语句'4'
的计算结果总是true
。因此您有某物| | true
,它的计算结果也总是true
您的if语句有两个问题:
您可以使用==
运算符进行严格的类型检查。引号中的'2'
是一个字符串,它根本不是一个整数,因此您无法将其与计数的结果进行比较,这是一个整数,至少在期望得到有用的结果时是这样。字符串从不严格等于整数。这将始终计算为false
,因此请删除引号,或使用=
运算符
你写的count…='2'| | | 4'
的正确语法是count…='2'| | | count…='4'
。在第一种情况下,你基本上说“要么count='2'
要么'4'
(或两者)必须为true
”。语句'4'
的计算结果总是true
。因此您有某物| | true
,它的计算结果也总是true
你使用三重等于的原因是什么?===.double就足够了,不是吗?对。用count($users)=='2'| |'4'
替换为count($users)='2'| | count($users)='4'
@JPLew。但两者都不起作用。@tmh也不起作用。count请考虑“TMH”的注释,你使用三重均等====,两倍就够了,不正确。替换“代码>计数($用户)===2”>4’/代码><代码>计数($用户)=‘2’×计数($用户)=‘4’< /代码>。@ JPUW完全。但也不工作。@ TMH也不工作。<代码>计数($用户)==1′=‘3’< /代码>总是正确的。请考虑“TMH”的注释<代码>或< /代码>条件是有效的<代码>(如果‘3’){< /代码> @粉碎我能准确地看到你所说的,但是我不能为我的生活找出如何把它译成英文。