2014-09-06 22 views
0

我在一段時間內想到了這個問題。假設我們有一個變量: $foo = $_GET['value'];(這是一個generical例子)不需要驗證的PHP持久變量類型

我想知道如果PHP有類似的Lua的東西,你可以有這樣的:

local randomvar = "string"; 
local foo = randomvar or 0; 

這樣,foo會視爲整數,如果randomvar不是整數,則將爲其分配值0

+0

你的Lua的理解是不正確('打印(類型( 「橙色」 或0))--string'),所幸的是沒有阻止你從獲取你在PHP中要求的東西。 – 2014-09-06 15:08:47

+0

@TomBlodget我不是用標準Lua編程,我寫的代碼在我使用它的地方工作。我的錯。 – 2014-09-06 15:11:30

回答

1

是的,有方法is_numeric

<? 
     $foo = "S"; 
     $bar = (is_numeric($foo)) ? $foo:0; 
     echo $bar; 
    ?> 

請考慮通過文檔去爲你的目的http://php.net/manual/en/function.is-numeric.php

+0

哈,我從來沒有考慮過這樣做。 – 2014-09-06 15:05:17

+1

@ShowTime,如果有幫助,請接受答案。 – cs1193 2014-09-06 15:06:10

+0

$ foo =「String」; $ bar = is_int($ foo)|| 0; print_r($ bar); <<<完全不起作用 – 2014-09-06 15:08:44

1

你可以施放它的類型:

$foo = (int) $_GET['value']; 

這不會將其設置爲但它肯定會刪除非數字字符。

或者你可以使用is_int():

+0

我已經在使用(int),但我發現Lua方法對於我的目的更加靈活,因爲(int)字符串將返回0,如果我想要127 f.e. – 2014-09-06 15:19:59

+0

您可以將其更改爲:function stringToZero($ var,$ int = 0){ return(is_int($ _ GET ['value']))? $ var:$ int; }那麼你可以調用$ randomvar = stringToZero($ temp,127); – Chemdream 2014-09-06 15:22:57