is_string()
(PHP 4, PHP 5, PHP 7)
检测变量是否是字符串
描述
is_string(mixed $var): bool
如果$var是string则返回TRUE,否则返回FALSE。
参见is_bool()、is_int()、is_integer()、is_float()、is_real()、is_object()和is_array()。
Using is_string() on an object will always return false (even with __toString()).
<?php
class B {
public function __toString() {
return "Instances of B() can be treated as a strings!\n";
}
}
$b = new B();
print($b); //Instances of B() can be treated as a strings!
print(is_string($b) ? 'true' : 'false'); //false
?>
As noted earlier, is_string() returns false on an object that has a __toString() method. Here is a simple way to do a check that will work:
<?php
// determine if the passed argument can be treated like a string.
function is_stringy($text) {
return (is_string($text) || (is_object($text) && method_exists($text, '__toString' ));
}