PHPヌルチェックの5つの完璧な方法 – 初心者でもすぐに理解できる!

PHPヌルチェックの解説記事イメージPHP
この記事は約6分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

あなたはPHPでヌルチェックを行う方法について、具体的にどのようにすれば良いのか疑問に思ったことはありませんか?

この記事を読むことで、PHPのヌルチェックの基本から応用までを理解し、自身のコードにどのように取り入れるかを学べるようになります。

5つの具体的なサンプルコードを通じて、PHPのヌルチェックの全貌を解明していきましょう。

●PHPヌルチェックとは

PHPでは、変数がnullであるかどうかをチェックするための仕組みがあります。

これを「ヌルチェック」と呼びます。

ヌルチェックは、不具合の原因となる未定義の変数や、予期せぬnull値を取り扱う場面で非常に有用です。

●PHPヌルチェックの基本的な使い方

では、ここからはPHPのヌルチェックの具体的な使い方を、サンプルコードを交えて説明します。

○サンプルコード1:変数のヌルチェック

一般的な変数に対するヌルチェックのコードを紹介します。

この例では、isset関数を用いて変数$varがセットされているかどうかを確認しています。

<?php
$var = null;

if(isset($var)) {
    echo "変数はセットされています。";
} else {
    echo "変数はヌルです。";
}
?>

このコードは、$varがnullの場合、「変数はヌルです。」と出力されます。

変数に何らかの値がセットされていれば、「変数はセットされています。」と出力されます。

○サンプルコード2:配列のヌルチェック

次に、配列の特定の要素がnullかどうかを確認する方法について見てみましょう。

isset関数を利用して配列$arrayの特定の要素がセットされているかどうかを確認します。

<?php
$array = array("foo" => null, "bar" => "baz");

if(isset($array["foo"])) {
    echo "fooはセットされています。";
} else {
    echo "fooはヌルです。";
}

if(isset($array["bar"])) {
    echo "barはセットされています。";
} else {
    echo "barはヌルです。";
}
?>

このコードは、配列$arrayの”foo”というキーの要素がnullなので、「fooはヌルです。」と出力し、”bar”というキーの要素が”baz”という値でセットされているので、「barはセットされています。」と出力します。

以上が、PHPのヌルチェックの基本的な使い方です。

次に、より実践的なヌルチェックの応用例について見ていきましょう。

●PHPヌルチェックの応用例

○サンプルコード3:フォームからの入力値のヌルチェック

ユーザーからのフォームの入力値がnullかどうかを確認する場合もあります。

下記のコードは、$_POSTスーパーグローバルを用いてPOST送信されたデータがセットされているかどうかを確認しています。

<?php
if(isset($_POST["username"])) {
    echo "ユーザー名:" . $_POST["username"];
} else {
    echo "ユーザー名は入力されていません。";
}
?>

このコードは、「ユーザー名」がPOST送信されていればその値を出力し、そうでなければ「ユーザー名は入力されていません。」と出力します。

○サンプルコード4:データベースのフィールドのヌルチェック

データベースから取得したデータの特定のフィールドがnullかどうかを確認する場面もあります。

下記のコードは、データベースから取得したデータ($row)のusernameフィールドがセットされているかどうかを確認します。

<?php
$row = fetchRowFromDatabase(); // あくまで例示です。

if(isset($row["username"])) {
    echo "ユーザー名:" . $row["username"];
} else {
    echo "ユーザー名は存在しません。";
}
?>

このコードでは、データベースから取得した$rowusernameフィールドがnullでない場合、その値を出力します。

nullの場合、「ユーザー名は存在しません。」と出力します。

○サンプルコード5:クラスのプロパティのヌルチェック

最後に、クラスのプロパティがnullかどうかを確認する方法を見てみましょう。

下記のコードは、Userクラスのインスタンス$userusernameプロパティがセットされているかどうかを確認します。

<?php
class User {
    public $username = null;
}

$user = new User();

if(isset($user->username)) {
    echo "ユーザー名:" . $user->username;
} else {
    echo "ユーザー名はセットされていません。";
}
?>

このコードでは、$userusernameプロパティがnullでない場合、その値を出力します。

nullの場合、「ユーザー名はセットされていません。」と出力します。

以上が、PHPでのヌルチェックの応用例です。

次に、ヌルチェックの際に注意すべき点と対処法について解説します。

●注意点と対処法

ヌルチェックを行う際には、いくつかの注意点があります。

まず、isset関数は変数が存在し、かつその値がnullでないことを確認します。

ですから、変数が存在しない場合でもエラーを引き起こさない特性があります。

しかし、変数が存在しない場合でもエラーにならないという特性は、未定義の変数を誤って使用するという問題を引き起こす可能性もあります。

これを避けるためには、事前に変数を初期化することが重要です。

●PHPヌルチェックのカスタマイズ方法

ヌルチェックをカスタマイズして、より具体的な状況に対応するための方法を紹介します。

下記のサンプルコードは、ヌル値だけでなく空文字をチェックするカスタマイズした関数を作成しています。

<?php
function isNullOrEmpty($str){
    return (!isset($str) || trim($str) === '');
}

$var = '';

if(isNullOrEmpty($var)) {
    echo "変数はヌルまたは空文字です。";
} else {
    echo "変数はセットされており、空文字ではありません。";
}
?>

このコードではisNullOrEmptyという新しい関数を作成しています。

この関数は入力された文字列がnullであるか、または空文字(空白のみも含む)であるかを確認します。

変数$varがヌルまたは空文字である場合、「変数はヌルまたは空文字です。」と出力します。

それ以外の場合は、「変数はセットされており、空文字ではありません。」と出力します。

このように、PHPで提供されている関数を基に、特定の用途に適したカスタム関数を作成することで、プログラムのロジックをより洗練されたものにすることができます。

まとめ

以上が、PHPでヌルチェックを行うための方法とその応用例、注意点、そしてカスタマイズ方法についての解説です。

ヌルチェックは、変数がセットされているかどうかを確認する基本的な技術ですが、それを適切に使用することで、エラーを予防し、プログラムのロバスト性を高めることができます。

カスタマイズについては、isset関数だけでなく、その他の関数やロジックを組み合わせて、特定の状況に対応するための独自のヌルチェック関数を作成することが可能です。

以上の情報が、PHPでのヌルチェックについての理解を深める助けとなれば幸いです。