2015-07-10 89 views
-2

我正在編寫一個方法來檢查輸入是否是字符串。我到目前爲止:檢查輸入是否爲字符串的方法

public function stringCheck($string){ 

    if (!empty($string) && is_string($string)){ 
     return true; 
    }else { 
     return false; 
    } 
} 

但是,它總是會返回true,因爲is_string也接受整數。有沒有替代is_string?我只是想確保輸入不是空的,實際上是一個字符串(檢查長度也會很酷)。

乾杯

+0

[其工作精](https://eval.in/396088) –

+0

你的意思是用*接受整數*,它也接受「24」,這是一個字符串?! – Rizier123

+0

'if(!empty($ string)&& is_string($ string)&&!is_numeric($ string)){'?如果你不想允許包含數值的字符串 –

回答

0
public function stringCheck($string){ 

    if (!empty($string) && ctype_alpha($string)) 
     return true; 
    else 
     return false; 

} 

看來你只想要字母字符。所以,學會ctype_alpha();

0

PHP函數IS_STRING()將正常工作,檢查值是否爲字符串或沒有。請檢查您是否給出不帶引號的整數值

0

您錯了,is_string也不接受整數。

$num = 1; 
$isString = is_string($num); 
var_dump($isString);//false 

你的問題是你傳遞一個字符串,它包含一個整數。如果你不想讓字符串表達任何整數或數字,你可以使用正則表達式。

$string = 'foo'; 
$isString = preg_match('/^([^0-9]*)$/', $string, $matches); 
var_dump($isString); //true 

$string = '44'; 
$isString = preg_match('/^([^0-9]*)$/', $string, $matches); 
var_dump($isString); //false 

//note that a combination retruns false too 
$string = '44 foo'; 
$isString = preg_match('/^([^0-9]*)$/', $string, $matches); 
var_dump($isString); //false