is_string

(PHP 4, PHP 5, PHP 7)

is_string변수의 자료형이 문자열인지 확인합니다

설명

bool is_string ( mixed $var )

주어진 변수가 문자열인지 확인합니다.

인수

var

평가할 변수.

반환값

varstring형이면 TRUE를, 아니라면 FALSE를 반환합니다.

예제

Example #1 is_string() 예제

<?php
if (is_string("23")) {
 echo 
"문자열입니다.\n";
} else {
 echo 
"문자열이 아닙니다.\n";
}
var_dump(is_string('abc'));
var_dump(is_string("23"));
var_dump(is_string(23.5));
var_dump(is_string(true));
?>

위 예제의 출력:

문자열입니다.
bool(true)
bool(true)
bool(false)
bool(false)

참고

  • is_float() - 변수의 자료형이 소수인지 확인합니다
  • is_int() - 변수의 자료형이 정수인지 확인합니다
  • is_bool() - 변수가 논리형인지 확인
  • is_object() - 변수가 객체인지 확인합니다
  • is_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