1
 <?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

4 に答える 4

0

これを試して。次のような条件がある場合は、代入演算子ではなく比較演算子をif使用します===

$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
于 2013-06-13T19:01:47.537 に答える
0

問題は、ifステートメントで比較演算子を使用していないことです。あなたが書いた方法では、ループを介して毎回値'A'を割り当てています。次のようにor$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存在しますか? それも問題になる可能性が非常に高いためです( to を変更してもうまくいかない場合===

于 2013-06-13T19:02:18.457 に答える
0

私はあなたのコードで3つの間違いを犯しました

  1. try( catch) キーワードがコードで関数名として使用されている場合は、名前を別の名前に変更してください。

  2. 中括弧}がありません。タイプミスの可能性があります。

  3. または=の代わりに使用した論理エラー=====

今のコードは次のようになります。

 <?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
      ?>
于 2013-06-13T19:09:37.450 に答える
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;
        }
    }
}
于 2013-06-13T19:08:31.060 に答える