检查最后一个字符是否为问号


Check if last character is a question mark

如何使用php检查字符串中的最后一个字符是否是问号(?)?

这是我目前的尝试,但不幸的是,它似乎不起作用:

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

substr()一个负的start值会使它从末尾开始计数,而不是从开头开始计数。

您的代码有两个主要错误。首先,这种比较是错误的。您正在询问最后一个字符是否不是问号。此外,您得到的是一个长度为0的子字符串,因此它总是不等于一个问号,因为'' != '?'总是True

使用您的原始代码,您可以将其更改为:

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

或者,这稍微短一点,只计算从末尾开始的子字符串的索引:

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

这是php,总有替代方案:

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

最简单的方法是:

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

有时我也会检查其他标记,如? !.:

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