1

簡単な PHP スクリプトの作成に問題があります。$_GET["give"]変数は PHP では常に 0 ですが、URL で定義しました。定義されていない場合、スクリプトはリダイレクトします。

    if (isset($_GET["give"])&&$_GET["give"]!="") {
        echo "give GET detected<br />";
        $user = $_GET["give"];
        echo $_GET["give"]+$user+"<br />";
    }
    header("Location: /diamonds/"); //this document, but removing arguments.

URL は問題あり/?give=kroltanません。kroltan をエコーする必要があります。しかし、代わりに、私はブラウザでこれを取得します:

   give GET detected <br>
   0

$userと同じ値ですが、変数をエコーし​​ません$_GET["give"]。そして<br>その後も

4

4 に答える 4

6

これはPHPです。.文字列を aではなく aで連結します+

@MarcB がコメントで述べたように、つまり、文字列に数学的加算を行っているため、PHP はkroltan文字列を0.

PHP の文字列演算子

于 2012-06-17T14:25:12.967 に答える
1

プラス記号を使用すると、PHP は数値を扱っていると見なし、文字列を数値に変更します。これにより、値がゼロの整数が得られます。したがって、常に値ゼロが返されます。文字列の値がゼロであるためです。

文字列を結合したい場合は、プラス記号の代わりにドットを使用する必要があります。

したがって、代わりに:

echo $_GET["give"]+$user+"<br />";

使用する必要があります

echo $_GET["give"] . $user . "<br />";

ところで、else ステートメントを使用していないため、コードは常にリダイレクトされます。また、$_GET['give'] の値を $user に割り当てて、次の行でそれらを組み合わせているのはなぜですか? それは奇妙に思えます。

于 2012-06-17T14:47:03.643 に答える
0

PHP では、+演算子は代数加算に.使用されますが、 は文字列連結に使用されます。

于 2012-06-17T14:25:40.610 に答える
0

の文字列連結 ( )の代わりに数値加算 ( +) 演算子を使用しています。PHP は数値以外の文字列を問題なくゼロに変換します。.$_GET["give"]+$user+"<br />"

于 2012-06-17T14:25:54.543 に答える