0

WordPressプラグインをリバースエンジニアリングしようとしていますが、のコードを理解するのに苦労しています。

プラグインは次のとおりです:http ://wordpress.org/extend/plugins/wordpress-social-login/

今回は、次の数行があります。

$wslp = @ (int) $_REQUEST["wslp"];

if( $wslp < 1 || $wslp > 6 ){
    $wslp = 1;
}

私の懸念は、パラメータが設定されていない場合(==が設定されていない$wslp場合)はどうなるかということです。wslp$_request

次の行はこの番号でページを取得するので、単に空にすることはできませんnull...

4

3 に答える 3

4
  • @PHPの警告を抑制するために使用されます。

  • を使用(int)すると、整数に変換できないものはすべて。になり0ます。

したがって、$_REQUESTキーが含まれていない場合wslp、は(未定義のオフセット警告とともに)$_REQUEST["wslp"]戻り、を生成します。NULL(int) NULL0

編集

クエリ文字列から値を取得し、それを目的のタイプに変換し、検証し、デフォルトにフォールバックする(たとえば、値が欠落しているか無効である場合)ためのはるかに優れた方法は、PHPfilter_input関数を使用することです。

$wslp = filter_input(INPUT_GET, "wslp", FILTER_VALIDATE_INT, array(
    "options" => array(
        "default" => 1,
        "min_range" => 1,
        "max_range" => 6
    )
));
于 2012-12-13T20:23:46.293 に答える
3

ゼロになります。

(int) undefined === 0

デモ

于 2012-12-13T20:22:28.680 に答える
1

$wslp整数にキャストされています。このステートメントは、配列に存在しないエントリ@に関する通知/警告を非表示にします。"wslp"$_REQUEST

于 2012-12-13T20:24:55.873 に答える