2013-07-02 32 views
1

如何檢查字符串中的最後一個字符是否是使用php的問號(?)?檢查最後一個字符是否爲問號

這是我目前的嘗試,但它似乎沒有工作,不幸的是:

if (substr(strrev(trim($link)),0,0) != "?") 
{ 

} 
+1

爲了什麼它的價值,我添加了解釋*一個答案,爲什麼你寫的是不是你做預期的*並解釋如何以更簡單的方式實現結果。 – 2013-07-02 02:32:18

回答

9
if (substr(rtrim($link), -1) != "?") { 
    // Do stuff 
} 

給人一種負startsubstr()使得它從末端,而不是指望開始。

+0

+1,我12秒晚了 –

+0

捱了一分鐘! – 2013-07-02 02:20:59

+1

我想知道是否有人可以想出更好的解決方案,但我不會屏住呼吸......我認爲這是非常理想的。 '!=='會更好嗎? – Floris

1

您的代碼有兩個主要錯誤。首先,比較是錯誤的。你問最後一個字符是不是的問號。另外,您得到的長度爲0的子字符串,因此總是不等於問號,因爲'' != '?'總是True

與原有的代碼,你可以把它改成這樣:

if (substr(strrev(trim($link)),0,1) == "?") 
{ 
    //Do things 
} 

或者,這是略短,只是計數從最終的子指數:

$link = "Say what?"; 
if (substr($link,-1) == "?") 
{ 
echo "You heard me!"; 
} 
+0

'substr'的​​默認長度是直到字符串結尾,而不是1. – Barmar

+1

@Barmar Eeek,我的不好。所有固定。 – 2013-07-02 02:39:46

+0

感謝您的提示! –

0

它的PHP,總有替代品:

$link='123?'; 
if (end(str_split($link)) == "?"){ 
    echo 'YES'; 
} 
0

最簡單的方法是:

if (substr("question?", -1) == '?') 

有時我也喜歡查?!.其他標記:

if (in_array(substr("question?", -1), ['?', '!' , '.'])) 
相關問題