2013-10-06 82 views
-2

我想使用substr從數組中獲取整數值,但由於某種原因它不起作用。我已經使用了$ word [strlen($ word)-1],(string)和strval,但它仍然沒有幫助。substr整數從一個數組中不工作在PHP

我的代碼是這樣的:

$word = $marie[$b][1]; // the integer 
$nstr = $word[strlen($word)-1]; 
+0

如果你關心足夠downvote不妨發佈你的理由。或者如果你不知道答案可能會發布,或者你不知道如何去做。 – magicianiam

回答

3

因爲它不是一個字符串和數組訪問器串僅適用於字符串

$word = (string) $word; 
$nstr = $word[strlen($word)-1]; 

然而,在你的情況,你可以(並應該)停留在「整數世界」

$nstr = $word % 10; 
+0

我明白了,謝謝。我不知道這一點,我一直認爲PHP將變量作爲字符串處理。 – magicianiam

+1

一旦涉及到數組,對象和資源(IO流等)不再有效;)在內部,每個變量都有一個類型,但是(如果需要的話,那就是每個人都在談論的類型弱點)PHP轉換該值自動適用於合適的類型。例如'$ a ='Foo'; if($ a/* interally cast to boolean * /){/ * .. * /}'。這個(就像你的情況)在每種情況下都不起作用('$ a = new stdClass; $ a = $ a + 3;') – KingCrunch

+0

我看到謝謝,所以當我的變量的值來自一個數組時不會總是把它當成一個字符串了。我什麼時候能夠將其轉換爲字符串?如何。謝謝 – magicianiam