php is_stringでstring型であるかを判定する

  • 作成日 2021.11.08
  • php
php is_stringでstring型であるかを判定する

phpで、is_stringを使用して、string型であるかを判定するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

is_string使い方

is_stringを使用すれば、string型であるかを判定することが可能です。

is_string(変数);
// string型であれば true, なければ falseを返します。

以下は、変数がstring型であるかを判定するサンプルコードとなります。

<?php

var_dump(is_string("str"));
// bool(true)

var_dump(is_string("1"));
// bool(true)

var_dump(is_string("1.1"));
// bool(true)

var_dump(is_string(1));
// bool(false)

var_dump(is_string(1.1));
// bool(false)

var_dump(is_string(true));
// bool(false)

var_dump(is_string(false));
// bool(false)

var_dump(is_string(["1", "2", "3"]));
// bool(false)

var_dump(is_string(new stdClass));
// bool(false)

var_dump(is_string(null));
// bool(false)

var_dump(is_string(fopen('hoge.txt', 'r+')));
// bool(false)

以下のコードでも判定可能です。
※パフォーマンスは、基本的にis_stringの方が良さそうです。

<?php

$var = "a";

var_dump(!is_array($var) && !is_object($var) && (string)$var === $var);
// bool(true)

$var = 1;

var_dump(!is_array($var) && !is_object($var) && (string)$var === $var);
// bool(false)

【参考】 数値をstring型であるかを判定したコードを1000万回実行した計測結果

実行結果

測定結果 : is_string
process time: 0.54697 ミリ秒

測定結果 : (string)
process time: 0.70826 ミリ秒