方法检查输入是否是字符串


Method to check if input is a string

我正在编写一个方法来检查输入是否是字符串。到目前为止我有这个:

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

但是,它将始终返回true,因为is_string也接受整数。是否有is_string的替代方法?我只是想确保输入不是空的,实际上是一个字符串(检查长度也会很酷)。

欢呼

public function stringCheck($string){
    if (!empty($string) && ctype_alpha($string))
        return true;
    else
        return false;
}

似乎您只想要字母字符。所以学习ctype_alpha();

is_string()不接受整数,除非您的意思是'55'是整数。但是,您必须验证字符串是否包含任何字母字符。

看一下文档:http://php.net/manual/en/function.is-string.php

PHP函数is_string()将很好地检查值是否是字符串。请检查是否给出了不带引号的整数值

你错了,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

你也可以检查这个,如果它是你正在寻找的:

http://php.net/manual/en/function.ctype-digit.php