我在一段時間內想到了這個問題。假設我們有一個變量: $foo = $_GET['value'];
(這是一個generical例子)不需要驗證的PHP持久變量類型
我想知道如果PHP有類似的Lua的東西,你可以有這樣的:
local randomvar = "string";
local foo = randomvar or 0;
這樣,foo
會視爲整數,如果randomvar
不是整數,則將爲其分配值0
。
我在一段時間內想到了這個問題。假設我們有一個變量: $foo = $_GET['value'];
(這是一個generical例子)不需要驗證的PHP持久變量類型
我想知道如果PHP有類似的Lua的東西,你可以有這樣的:
local randomvar = "string";
local foo = randomvar or 0;
這樣,foo
會視爲整數,如果randomvar
不是整數,則將爲其分配值0
。
是的,有方法is_numeric
<?
$foo = "S";
$bar = (is_numeric($foo)) ? $foo:0;
echo $bar;
?>
請考慮通過文檔去爲你的目的http://php.net/manual/en/function.is-numeric.php
哈,我從來沒有考慮過這樣做。 – 2014-09-06 15:05:17
@ShowTime,如果有幫助,請接受答案。 – cs1193 2014-09-06 15:06:10
$ foo =「String」; $ bar = is_int($ foo)|| 0; print_r($ bar); <<<完全不起作用 – 2014-09-06 15:08:44
你可以施放它的類型:
$foo = (int) $_GET['value'];
這不會將其設置爲但它肯定會刪除非數字字符。
或者你可以使用is_int():
我已經在使用(int),但我發現Lua方法對於我的目的更加靈活,因爲(int)字符串將返回0,如果我想要127 f.e. – 2014-09-06 15:19:59
您可以將其更改爲:function stringToZero($ var,$ int = 0){ return(is_int($ _ GET ['value']))? $ var:$ int; }那麼你可以調用$ randomvar = stringToZero($ temp,127); – Chemdream 2014-09-06 15:22:57
你的Lua的理解是不正確('打印(類型( 「橙色」 或0))--string'),所幸的是沒有阻止你從獲取你在PHP中要求的東西。 – 2014-09-06 15:08:47
@TomBlodget我不是用標準Lua編程,我寫的代碼在我使用它的地方工作。我的錯。 – 2014-09-06 15:11:30