如何将数组值与变量值进行比较

时间:2013-06-13 18:57:58

标签: php

 <?php
function try(){

$tutorial = array("D","C","B","A");
for( $i = 0 ; $i < count($tutorial) ; $i++ ){
    if( $tutorial[$i] == 'A' )
        $enum = 1;
    else if( $tutorial[$i] == 'B' )
        $enum = 2;
    else if( $tutorial[$i] == 'C' )
        $enum = 3;
    else if( $tutorial[$i] == 'D' )
        $enum = 4;
    echo "$enum". "<br/>";
}
  ?>

当我打印出变量ENUM时,它总是空白的.. 有什么问题?

4 个答案:

答案 0 :(得分:0)

试试这个。当您遇到类似if的条件时,请使用==之类的comparison运算符,而不是像=那样的asignment operator

$tutorial = array ('A', 'B','B', 'B', 'C', 'D');
for( $i = 0 ; $i < count($tutorial) ; $i++ ){
        if ($tutorial[$i] == 'A') {
            $enum = 1;
        }
        else if( $tutorial[$i] == 'B' ) {
            $enum = 2;
        }
        else if( $tutorial[$i] == 'C' ) {
            $enum = 3;
        }
        else if( $tutorial[$i] == 'D' ){
            $enum = 4;
        }
        echo $enum;
    }

// prints 122234

答案 1 :(得分:0)

问题是您没有在if语句中使用比较运算符。编写它的方式是,每次循环都会将值'A'赋给$tutorial[$i]。您需要使用=====,如下所示:

<?php
function try(){
    for( $i = 0 ; $i < count($tutorial) ; $i++ ) {
        if ( $tutorial[$i] == 'A' ) {
            $enum = 1;
        } elseif ( $tutorial[$i] == 'B' ) {
            $enum = 2;
        } elseif ( $tutorial[$i] == 'C' ) {
            $enum = 3;
        } elseif( $tutorial[$i] == 'D' ) {
            $enum = 4;
        }
    }
}
?>

==比较值而不检查类型

===比较值和类型

顺便说一句,我没有看到你如何将$tutorial变量放入你的函数中。你没有传入它而你没有使用global$tutorial存在于哪个范围内?因为这也可能是问题所在(如果将=更改为==不起作用)。

答案 2 :(得分:0)

您的运算符在if语句中不正确,因为您要分配(=)变量而不是比较(=====)。此外,您正在使用保留字try(它保留用于例外),这应该会导致各种错误。这样的事情应该有效:

function _try(){
    for($i = 0 ;$i < count($tutorial) ;$i++){
        if($tutorial[$i] == "A")
            $enum = 1;
        else if($tutorial[$i] == "B")
            $enum = 2;
        else if($tutorial[$i] == "C")
            $enum = 3;
        else if($tutorial[$i] == "D")
            $enum = 4;
    }
}

或者你总是可以使用控制结构switch()来解析循环:

function _try() {
    for($i = 0 ;$i < count($tutorial) ;$i++){
        switch($tutorial[$i]) {
            case("A"):
                $enum = 1;
                break;
            case("B"):
                $enum = 2;
                break;
            case("C"):
                $enum = 3;
                break;
            case("D"):
                $enum = 4;
                break;
            default:
                $enum = false;
        }
    }
}

答案 3 :(得分:0)

我的代码中有三个错误

  1. trycatch)关键字在您的代码中用作函数名称,将名称更改为其他名称。

  2. 错过了一个大括号},好吧这可能是一个错字。

  3. 逻辑错误,您使用了=代替=====

  4. 您现在的代码变为:

     <?php
    function tryThis(){
    for( $i = 0 ; $i < count($tutorial) ; $i++ ){
        if( $tutorial[$i] == 'A' )
            $enum = 1;
        else if( $tutorial[$i] == 'B' )
            $enum = 2;
        else if( $tutorial[$i] == 'C' )
            $enum = 3;
        else if( $tutorial[$i] == 'D' )
            $enum = 4;
    }
    }
      ?>
    

    修改  回答编辑问题....

    好像你忘了打电话给这个功能.......那个改变让它对我起作用了。

        <?php
        function tryThis(){
    
        $tutorial = array("D","C","B","A");
        for( $i = 0 ; $i < count($tutorial) ; $i++ ){
            if( $tutorial[$i] == 'A' )
                $enum = 1;
            else if( $tutorial[$i] == 'B' )
                $enum = 2;
            else if( $tutorial[$i] == 'C' )
                $enum = 3;
            else if( $tutorial[$i] == 'D' )
                $enum = 4;
            echo "$enum". "<br/>";
        }
    
    
       tryThis();     //functional cal here
          ?>