PHP 8.1.0 Beta 1 available for testing


(PHP 4, PHP 5, PHP 7, PHP 8)

is_stringDétermine si une variable est de type chaîne de caractères


is_string(mixed $value): bool

Détermine si la variable donnée est de type chaîne de caractères.

Liste de paramètres


La variable à évaluer.

Valeurs de retour

Retourne true si value est une chaîne de caractères, false sinon.


Exemple #1 Exemple avec is_string()

= array(falsetruenull'abc''23'23'23.5'23.5''' ''0'0);
foreach (
$values as $value) {
") = ";

L'exemple ci-dessus va afficher :

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)

Voir aussi

  • is_float() - Détermine si une variable est de type nombre décimal
  • is_int() - Détermine si une variable est de type nombre entier
  • is_bool() - Détermine si une variable est un booléen
  • is_object() - Détermine si une variable est de type objet
  • is_array() - Détermine si une variable est un tableau

add a note add a note

User Contributed Notes 3 notes

laszlo dot heredy shift-two gmail etc
7 years ago
Using is_string() on an object will always return false (even with __toString()).

class B {
  public function
__toString() {
"Instances of B() can be treated as a strings!\n";

$b = new B();
$b); //Instances of B() can be treated as a strings!
print(is_string($b) ? 'true' : 'false'); //false
Peter Barney
3 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:

// 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' ));
jcours at numifinancial dot com
1 year 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:

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):
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");
  } else {
    print (
"vector $idx OK\n");
To Top