2015-10-14 35 views
3

在此代碼中,我現在定義了變量ID,如果我將使用外部大括號中的$id,我將得到錯誤未定義的變量$id。有什麼方法可以使用括號外的變量。獲取變量超出大括號的範圍

<?php 
if (isset($_GET['username'])) { 
$check = $db->prepare("SELECT id, email, phone, FROM members WHERE username=:username"); 
$check->execute(array(':username'=>$username));  
$get = $check->fetch(PDO::FETCH_ASSOC); 
$id = $get['id']; 
$email = $get['email']; 
} 
else { 
// error 
} 

$posts =$db->prepare("SELECT * FROM posts WHERE id=:id"); 
$posts->execute(array(':id'=>$id)); 
$row=$posts->fetch(PDO::FETCH_ASSOC)); 
$title = $row['title']; 
$body = $row['body']; 
?> 
+1

首先,它可能是'$ _GET',而不是'$ get'你想使用的。因此,如果您在將'$ id'設置爲'$ get ['id']'值(可能不存在)後嘗試訪問'$ id',您將得到未定義的通知。 –

+0

將其定義在大括號外。 – akasummer

+0

@AlanMachado @AlanMachado對不起,但我在這裏使用'$ get'作爲'$ row'它不是'$ _GET' –

回答

5
<?php 
$id=""; //initialize a variable with blank value 
if (isset($_GET['username'])) { 
// query to get data 
$id = $_GET['id']; 
} 
else { 
// error 
} 
?> 
+0

爲什麼建議OP用'@'來壓制錯誤?如果'$ _GET'索引未設置或爲空,則有最好的方法來檢查它,而不是假裝錯誤/通知不存在! –

+0

@AlanMachado:同意:) –

4

試試這個: 您可以定義變量ID喜歡global $id;定義後立即PHP標籤開始。

<?php 
    global $id; 
    if (isset($_GET['username'])) { 
    // query to get data 
    $id = $get['id']; 
    } 
    else { 
    // error 
    } 
    ?>