我遇到了奇怪的事情,我不知道它爲什麼會發生!PHP intval()奇怪的結果
我有這樣一個URL:
http://mysite.com/users/USER_ID
該用戶ID可能是INT
和可STRING
,它像Facebook頁面的地址,如果調用頁面ID它加載到頁面,你也可以用網頁名稱稱呼它「my_page_name」
所以,想象一下它的ID是1
用戶,它的地址是my_name
在我的PHP頁面,我需要查詢數據庫,而T3之前帽子我需要知道看哪一列,id
或page_name
於是我想出了這個解決方案:
<?php
$id = $_GET['id'];
$id_inted = intval($_GET['id']);
if($id == $id_inted){
// The column which I should look into is id
$column = 'id';
}else{
// The column which I should look into is page_name
$column = 'page_name';
}
$query = mysql_qyery(SELECT * FROM members WHERE $column = '$id');
?>
所以我測試了它,但結果是怪異,即使我把這個網址:
http://mysite.com/users/page_name
出現這種情況:$column = 'id';
我打開一個新的測試頁:
<?php
$real_string = 'abcdefg';
$string_inted = intval($real_string);
echo "Real String is: " . $real_string . "<br />";
echo "The same string as int is: " . $string_inted . "<br />";
if($real_string == $string_inted) echo "Weird!"; else echo "Fine...";
?>
,結果:
Real String is: abcdefg
The same string as int is: 0
Weird!
爲什麼發生這種情況?
在此先感謝。
祝賀管理始終拼錯怪異,因爲有線... – Aatch
@Aatch恭喜您接近問題的要點! :-D – behz4d
我也回答了這個問題。我只是驚訝於你設法寫了'有線'而不是'怪異'4次。 – Aatch