2011-10-27 30 views
1

我從$_GET['category']得到一個變量。這總是應該是一個整數。所以,當我設置變量使用:php settype()int總是返回1

$category=settype($_GET['category'], "int"); 
// Also tried 
$category=settype($_GET['category'], "integer"); 

然而,這總是返回1.他們是在查詢字符串,例如數字:

http://domain.com/example.php?category=57

當我echo $category它總是返回1。 ?category=沒有多少數字。

任何幫助,將不勝感激!謝謝!

回答

4

settype修改變量的類型。你正在使用它,好像它會返回一個新的變量。

但是,如果類型更改成功,settype返回true,否則返回false。您看到結果1,因爲這是true的字符串表示形式。

您應該使用casting,或intval

$category = (int) $_GET['category']; // or ... 
$category = intval($_GET['category']); 
+0

謝謝!完美的作品! – tvirelli

+1

有時候討厭SO的隨機答案排序有時:( – Phil

0

請閱讀文檔settype()。 FYI,其回報值爲bool

相反,嘗試鑄造,如

$category = (int) $_GET['category']; 
1

settype成功返回TRUE或FALSE的失敗。

它不返回值,它只是返回設置類型是否成功。您的$_GET['category']變量現在是int。如果您想要執行一個返回值但保留該變量的演員表,則語法如下:

$category = (int)$_GET['category'];