2013-07-26 117 views
-1

我需要一个php if语句来检查字符串的第一个字符是否是一个数字,但我不知道该怎么做,我尝试了几件事情没有工作。我的基本代码如下,它说“一个数字”是我需要它来改变第一个字符的地方。如果语句检查第一个字符是否是数字

if ($row['left_button_link'] == a number) 
{ 
printf('hello'); 
} 

else 
{ 
printf('bye bye'); 
} 

而且我怎么添加第三个支票本声明。如果正在检查一个数字,其他字符串将以“/”开头,但如果我想要第三个选项,如果字符串是空的,根本没有字符,我该如何补充?

感谢您的任何帮助。

+4

如何[阅读手册](http://php.net/manual/en/function.is-numeric。 PHP)? – Leri

+0

这个东西(特别是最后一个请求)是非常基本的 - 我建议你通过在线PHP教程。有许多关于,但有2个是:http://www.w3schools.com/php/&http://www.tizag.com/phpT/ – SmokeyPHP

回答

3

有内置的功能可以满足您的需求。

  • is_numeric()检查,如果是一个数字,
  • substr()或similr因为如果第一个字符检查是检查什么
  • empty()如果一个字符串是空的

检查,如果它是一个编号:

if(is_numeric(substr($string,0, 1)) ){ 

echo "it is a number"; 

} 

正如NB在下面评论的,哟ü可以把字符串作为数组,而这也应该工作:

if(is_numeric($string[0])) { 

    echo "it is a number"; 

} 

所以,当我们运用所有这些,你的代码应该是这样的:

$var = $row['left_button_link']; 

if(is_numeric($var[0])) 
{ 
    echo "It starts with a number!"; 
} 
elseif ($var[0] == '/') 
{ 
    echo "Uh oh, first character is a slash"; 
} 
elseif(empty($var)) { 
    echo "Bye bye"; 
} 

希望这有助于!

+0

只是一个说明 - 你可以把一个字符串作为一个字符数组和使用'$ string [0]'而不是substr。 +1在任何情况下。 –

+0

@ N.B。谢谢,我不知道。 – Mihai

+0

@Mihai非常感谢你。这工作完美。 – user2574794

0
is_numeric(substr($string, 0, 1)) 
3

可以使用is_numeric功能:

is_numeric($str[0]) 

因此,最终产品应该是:

if (is_numeric($row['left_button_link'][0])) { // check if first char is numeric 
    printf('hello'); 
} 
elseif ($row['left_button_link'][0] == '/') { // check if first char is '/' 
    printf('First char is /'); 
} 
elseif (empty($row['left_button_link'])) {  // check if string is empty 
    printf('Empty!'); 
} 
else{ 
    printf('bye bye'); 
} 
+1

我很确定elseif应该检查第一个字符是'/' – SmokeyPHP

+0

这个答案有什么问题,以便我可以改进它? – jh314

0
if (is_numeric(substr($row['left_button_link'], 0, 1))){ 
    //do something 
} 
0

也许是这样的:

if(preg_match('/^\d/,$input)) { 
    echo "First char is a digit."; 
} 
0

针对问题B使用问题上use is_numeric()elseif (...)

if (is_numeric($row['left_button_link'][0])) { 
    printf('hello'); 
    } 
elseif (empty($row['left_button_link'])){ 
    printf('String is empty'); 
    } 
else{ 
    printf('bye bye'); 
    } 

HTH (尽管严重的问题,这个简单,你应该看它的说明书)

+0

我很确定elseif应该检查第一个字符是一个'/' – SmokeyPHP

+0

根据OP:“但是如果我想要第三个选项,如果字符串是空的,根本没有字符,我该如何补充? –

+0

是的,这个检查是你的第二个选项,而不是你的第三个 – SmokeyPHP

0
if(ctype_digit($row['left_button_link'][0])) 
{ 
    //First char is numeric 
} 
else if($row['left_button_link'][0] == '/') 
{ 
    //First char is "/" 
} 
else if(trim($row['left_button_link']) == '') 
{ 
    //String is completely empty 
} 
else 
{ 
    //Something else 
} 

使用empty()到时要小心检查一个字符串是否为空 - 它只能在数组上可靠地使用。当传递“empty()将返回false” - 这是更可靠的trim()的输出与比较'

+0

人们回答如此之快在这里我没有看到这个!所以“其他如果”是如何有多个ifs。谢谢,这正是我需要的:) – user2574794

+0

@ user2574794确实,请记住我关于'empty()的最后一句话,它不会将字符串中的空格分类为空 – SmokeyPHP

+0

@ user2574794因为这是从技术上来说,这是整个问题的正确答案(尽管其他人提供了有效的部分答案),我还建议删除其他答案中的答案,并接受此答案,以便将来为这个问题的读者 – SmokeyPHP

相关问题