1

私はphpにとても慣れていません。私はという名前のjsonを持っていjsonます。私がこれをやろうとすると:

echo $json->status;

私は得る:

CREATED

CREATEDこの結果を次のような通常の文字列と比較しようとしています。

if(strcasecmp("CREATED",$json->status))
{
    print_r("Order created successfuly");
}

しかし、何らかの理由で、if conditionは評価していませんtrue。と比較CREATEDしてもCREATED

エラーがどこにあるかわからない。

前もって感謝します。

4

6 に答える 6

6

文字列が等しい場合、この関数はゼロを返します

if (strcasecmp("CREATED",$json->status) == 0)
于 2013-01-18T11:29:13.790 に答える
5

マニュアルを見てください:

Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal.

したがって、コードを次のように変更する必要がありstrcasecmp('a','a')ます0

if(strcasecmp("CREATED",$json->status) == 0)
{
    print_r("Order created successfuly");
}
于 2013-01-18T11:29:53.013 に答える
4

http://php.net/manual/en/function.strcasecmp.php

ページからの引用:

str1がstr2より小さい場合、<0を返します。str1がstr2より大きい場合は>0、等しい場合は0。

したがって、をstrcasecmp('CREATED', 'CREATED')返します0。そして0、に等しくありませんtrue。あなたはそれをしなければなりません:

if (strcasecmp("CREATED",$json->status) === 0) {
    print_r("Order created successfuly");
}
于 2013-01-18T11:29:22.220 に答える
3
if (strcasecmp( $json->status, "CREATED") == 0) 
{
...
...

}
于 2013-01-18T11:29:40.263 に答える
0

なぜあなたはもっと単純なifステートメントを使うことができないのですか?

if( $json->status == "CREATED" ) {
    print_r("Order created successfuly");
}

また、ステータスの最後または最初に空白がないか確認してください。

于 2013-01-18T11:27:59.677 に答える
0

文字列を比較するには、次のようにしてください。

if($json->status == "CREATED")
{
   echo "Order created successfuly";
}
于 2013-01-18T11:29:15.467 に答える