PHP数组计数-IF/Elseif

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();

尝试编写一个简单的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') {
      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’){< /代码> @粉碎我能准确地看到你所说的,但是我不能为我的生活找出如何把它译成英文。