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'