我需要一个php if语句来检查一个字符串的第一个字符是否是一个数字,但我不知道该怎么做,我尝试了一些没有用的东西。我的基本代码如下所示,其中“数字”是我需要它来查看第一个字符的地方。
if ($row['left_button_link'] == a number)
{
printf('hello');
}
else
{
printf('bye bye');
}
另外,如何在此语句中添加第三个检查。 if正在检查一个数字,else字符串将以“/”开头,但如果我想要第三个选项,如果字符串为空,根本没有字符,我该如何添加?
感谢您的帮助。
答案 0 :(得分:3)
有内置功能可以满足你的需要。
is_numeric()
检查是否为数字,substr()
或者用于检查第一个字符是否为empty()
用于检查字符串是否为空检查是否是数字:
if( is_numeric(substr($string,0, 1)) ){
echo "it is a number";
}
如下面N.B所述,您可以将字符串视为数组,这也应该有效:
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";
}
希望这有帮助!
答案 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');
}
答案 2 :(得分:0)
is_numeric(substr($string, 0, 1))
答案 3 :(得分:0)
if (is_numeric(substr($row['left_button_link'], 0, 1))){
//do something
}
答案 4 :(得分:0)
可能是这样的:
if(preg_match('/^\d/,$input)) {
echo "First char is a digit.";
}
答案 5 :(得分:0)
问题问题use is_numeric()
问题b使用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 (虽然认真对待这个简单的问题,你应该在手册中查找)
答案 6 :(得分: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()
的输出与''