8

変数がtrueの場合、「成功」をエコーし​​たいと思います。(私はもともと、関数にのみ適用される「returnstrue」を作成しました。

$add_visits = add_post_meta($id, 'piwik_visits', $nb_visits, true);
if($add_visits == true){
         echo 'success';
}

これは同等ですか

$add_visits = add_post_meta($id, 'piwik_visits', $nb_visits, true);
if($add_visits){
         echo 'success';
}

または、$add_visitsは'true'または'false'のどちらでも存在しますか。

4

8 に答える 8

22

あなたは考慮したいかもしれません:

if($add_visits === TRUE){
     echo 'success';
}

これにより、値がTRUEであり、ブール型であることが確認されます。これはより安全です。現状では、$ add_visitsが文字列「fail」として返される場合、コードは成功をエコーし​​ます。これは、リクエストの送信後にDBが失敗した結果として簡単に発生する可能性があります。

于 2012-09-20T18:32:28.243 に答える
12

テスト$var == trueは単なるテストと同じです$var

このSOの質問は、比較演算子で読むことができます。このトピックに関するPHPマニュアルも読むことができます。

注:変数はを返し ませんtrue。、またはと 評価されます。ただし、関数はを返しますtruetrue true

于 2012-09-20T18:26:15.643 に答える
8

それらは同じです。

これ...

if ($add_visits == true)
    echo 'success';

...と同じです:

if ($add_visits)
    echo 'success';

同様に、次のように条件がfalseであるかどうかをテストすることもできます。

if (!$add_visits)
    echo "it's false!";
于 2012-09-20T18:26:47.480 に答える
1

ええ、それはうまくいくでしょう。

//true
if($variable) echo "success";
if($variable == true) echo "success";


//false
if(!$variable) echo "failure";
if($variable == false) echo "failure";
于 2012-09-20T18:27:36.650 に答える
1
if($add_visits === TRUE)

トリックを行う必要があります。

于 2012-09-20T18:35:39.440 に答える
1

最も安全な方法は、php検証を使用することです。phpへのajax投稿の場合:

$isTrue=filter_var($_POST['isTrue'], FILTER_VALIDATE_BOOLEAN);
于 2018-02-28T19:15:38.887 に答える
0
if (isset($add_visits) && $add_visits === TRUE){
     echo 'success';
}

冗長に見えるかもしれませんが、PHPはNoticeif$add_visitsが設定されていない場合にスローします。これは、変数が真であるかどうかをテストするための最も安全な方法です。

于 2018-02-06T19:47:48.153 に答える
0

非準拠のコード例

if ($booleanVariable == true) { /* ... */ }
if ($booleanVariable != true) { /* ... */ }
if ($booleanVariable || false) { /* ... */ }

doSomething(!false);

Compliant Solution
if ($booleanVariable) { /* ... */ }
if (!$booleanVariable) { /* ... */ }
if ($booleanVariable) { /* ... */ }

doSomething(true);

于 2022-01-18T02:13:36.923 に答える