2013-07-26 118 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

相關問題