2013-08-06 96 views
0

首先,我無法在線找到此答案,因爲我的變量字符串已定義。通常情況下,我應該能夠將0添加到變量,或使用(int),但它不起作用。PHP將變量字符串轉換爲int

<?php 

$casestringid = "'118'"; 
$caseid = $casestringid + 0; 

echo $casestringid; 

echo $caseid; 

?> 

輸出:「118'0

正如你所看到的,因爲我的方式第一個變量聲明,將字符串轉換爲整數的標準方法不起作用。我的$casestringid就是這樣寫的,因爲它從另一個頁面請求一個號碼。與其試圖改變如何格式化,我認爲如何將看起來像這樣的字符串轉換爲整數,會更容易。我希望caseid的輸出爲118.感謝您提前提供任何幫助。

+0

替換(移除)單引號第一然後鍵入鑄造爲整數。 – naththedeveloper

回答

1

我認爲你有沒有其他的機會,像這個:

intval(str_replace("'",'',$casestringid)); 
+0

某人在你之前一分鐘說完全一樣的東西。謝謝,雖然它是正確的! – user2562568

+0

等你前面說過吧 – user2562568

1

嘗試intval ($casestringid) + 0

編輯:

這個怎麼樣,然後:

filter_var ($casestringid, FILTER_SANITIZE_NUMBER_INT); 
+3

我不認爲intval會消化引號。 – MightyPork

+0

我認爲intval會導致零。 – steven

+0

剝離' –

0

你必須刪除單引號和使用intval().

<?php 

$casestringid = "'118'"; 
$parseid = str_replace("'", "", $casestringid); 
$caseid = intval($parseid); 

echo $casestringid; 

echo $caseid; 

?> 
1

更換「」:

intval(str_replace("'",'',$casestringid)); 
+0

有用!謝謝! – user2562568

0
$casestringid = "'118'"; 
$int = str_replace("'", "", $casestringid); 
echo intval($int); 
+0

應該仍然使用'intval()',即使在字符串被替換後 – Cfreak

+0

@Cfreak好點,編輯 – robz228

3

的問題是,'118'整數至於PHP解析器而言,這是一個字符串。它看起來像一個整數給我們,當然,但它有斜槓('),使它「不可轉換」。

使用str_replace此:

intval(str_replace("'", '', $casestringid)); 
+0

typecasting(int)str_replace(...)是performanter然後intval() – donald123

+0

@ donald123的確如此。在這種情況下,我們使用基於10的'intval',所以最好使用int鑄造。 '0 + str_replace(...)'會更快。 – federicot

0

如果只是你正在尋找一個整數,這可能是工作。 它會刪除任何非數字字符然後返回它作爲int

function parseInt($s){ 
    return (int)(preg_replace('~\D+~' , '' , $s)); 
}