0

$ _GET変数に基づいてリンクを定義しようとしていますが、存在しない行にエラーがあると言っています...

 <?php

if(isset($_GET['ref'])){
    if(!empty($_GET['ref']))
    {
        $ref = $_GET['ref'];
    }
?>

<?php

      if ($ref != "") {
  $link = "http://site.com/page.php?ref=$ref";
} else {

 $link = "http://site.com/page.php";
    }

?>

誰もが何が起きているのかわかりますか?私はそれが大丈夫だとかなり確信していました。

私はそれを複数の異なる方法で試しましたが、issetなど...同じ結果です。

4

1 に答える 1

2

クロージングがありません}

if(isset($_GET['ref'])){
    if(!empty($_GET['ref']))
    {
        $ref = $_GET['ref'];
    }
}

ちなみに、このコードはかなり冗長です。empty()変数が設定されているかどうかもチェックするので、は必要ありませんisset()

三項演算子を使用することもできます。これは、次のような場合に使用します。

$ref = empty($_GET['ref']) ? null : $_GET['ref'];

そして後で確認してください:

if (!is_null($ref)) {
    //whatever
}

そうしないと、コード内で実行がに達するif ($ref != "") {と、変数$refが存在しないE_NOTICE可能性があります。これにより、設定によっては、が表示されない場合があります。

于 2012-09-25T21:54:23.623 に答える