PHP 버전
4+
/* 문자열 */
var_dump(is_string('환영합니다'));  // bool(true)
var_dump(is_string('10'));       // bool(true)
var_dump(is_string('0'));        // bool(true)
var_dump(is_string(''));         // bool(true) -> 빈 문자열도 문자열
var_dump(is_string(' '));        // bool(true) -> 공백 문자열도 문자열
var_dump(is_string("큰따옴표로 감싼 문자열")); // bool(true) -> 큰따옴표로 감싼 문자열도 문자열

/* 정수 */
var_dump(is_string(10));         // bool(false) -> 정수는 문자열이 아님

/* 부동 소수점 숫자 */
var_dump(is_string(10.25));      // bool(false) -> 부동 소수점 숫자는 문자열이 아님

/* 불리언 */
var_dump(is_string(true));       // bool(false) -> 불리언은 문자열이 아님
var_dump(is_string(false));      // bool(false) -> 불리언은 문자열이 아님

/* null */
var_dump(is_string(null));       // bool(false) -> null은 문자열이 아님

/* 숫자 연산 결과 */
var_dump(is_string(1 + 1));      // bool(false) -> 숫자 연산 결과는 문자열이 아님
var_dump(is_string(10 / 2));     // bool(false) -> 숫자 연산 결과는 문자열이 아님

/* 문자열 연결 */
var_dump(is_string('1' . '1'));  // bool(true)  -> 문자열 연결 결과는 문자열

/* 문자열과 숫자 연결 */
var_dump(is_string('1' . 1));    // bool(true)  -> 문자열과 숫자 연결 결과는 문자열

/* 타입 캐스팅(Type Casting, 형 변환) */
var_dump(is_string((string) 1));    // bool(true) -> 정수를 문자열로 형 변환
var_dump(is_string((string) 1.9));  // bool(true) -> 부동 소수점 숫자를 문자열로 형 변환
var_dump(is_string((string) true)); // bool(true) -> 불리언을 문자열로 형 변환
is_string(mixed $value): bool
class MyObject {
    public function __toString() {
        return "This is an object";
    }
}

$obj = new MyObject();
var_dump(is_string($obj)); // bool(false)
var_dump(is_object($obj)); // bool(true)
$empty_string = '';
$null_value = null;

var_dump(is_string($empty_string)); // true
var_dump(is_string($null_value)); // false

var_dump(is_null($empty_string)); // false
var_dump(is_null($null_value)); // true
$str1 = 'Hello, world!';
$str2 = '환영합니다. 반갑습니다!';
$str3 = '';

echo gettype($str1); // 'string'
echo gettype($str2); // 'string'
echo gettype($str3); // 'string'