is_string

(PHP 4, PHP 5, PHP 7)

is_stringFind whether the type of a variable is string

Opis

is_string ( mixed $var ) : bool

Finds whether the type of the given variable is string.

Parametry

var

The variable being evaluated.

Zwracane wartości

Returns TRUE if var is of type string, FALSE otherwise.

Przykłady

Przykład #1 is_string() example

<?php
$values 
= array(falsetruenull'abc''23'23'23.5'23.5''' ''0'0);
foreach (
$values as $value) {
    echo 
"is_string(";
    
var_export($value);
    echo 
") = ";
    echo 
var_dump(is_string($value));
}
?>

Powyższy przykład wyświetli:

is_string(false) = bool(false)
is_string(true) = bool(false)
is_string(NULL) = bool(false)
is_string('abc') = bool(true)
is_string('23') = bool(true)
is_string(23) = bool(false)
is_string('23.5') = bool(true)
is_string(23.5) = bool(false)
is_string('') = bool(true)
is_string(' ') = bool(true)
is_string('0') = bool(true)
is_string(0) = bool(false)

Zobacz też:

  • is_float() - Finds whether the type of a variable is float
  • is_int() - Find whether the type of a variable is integer
  • is_bool() - Finds out whether a variable is a boolean
  • is_object() - Finds whether a variable is an object
  • is_array() - Finds whether a variable is an array

add a note add a note

User Contributed Notes 3 notes

up
29
laszlo dot heredy shift-two gmail etc
10 years ago
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
?>
up
6
Peter Barney
6 years ago
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' ));
}
up
-1
jcours at numifinancial dot com
3 years ago
is_string() of an integer or float returns false, so it might be useful to include an is_numeric() when checking if a value is stringy:

<?php
function is_stringy($val) {
  return (
is_string($val) || is_numeric($val)
    || (
is_object($val) && method_exists($val, '__toString')));
}
?>

Test code (which should print "vector N OK" for each test vector):
<?php
foreach ([[NULL, false], [false, false], [true, false],
  [
0, true], [[], false], [0.1, true], ["x", true],
  [
"", true], [new Exception("x"), true]] as $idx => $vector) {
  list (
$val, $expected) = $vector;
  if (
is_stringy($val) != $expected) {
    print (
"mismatch at $idx\n");
   
var_dump($val);
  } else {
    print (
"vector $idx OK\n");
  }
}
?>
To Top