PHPのgoto文とは?

PHPのgoto文とは? PHP言語リファレンス
PHPのgoto文とは?初心者向けにわかりやすく解説
zucksadnetwork

goto文とは?

goto文は、指定したラベルに制御を移動する文です。goto文は、C言語やJavaなどの言語でも使用できますが、PHPでは、goto文の使用は推奨されていません。

goto文の概要

goto文の構文は、以下のとおりです。

goto ラベル名;

ラベル名は、goto文で移動するラベル名です。ラベル名は、アルファベット、数字、アンダースコア、コロンを使用できます。

goto文の書き方

goto文は、ラベル名を指定することで、そのラベルに制御を移動します。

ラベルの定義

ラベルは、行の先頭に記述します。ラベル名は、アルファベット、数字、アンダースコア、コロンを使用できます。

ラベルの定義例:

ループ終了:

goto文の使用

goto文は、ラベル名を指定することで、そのラベルに制御を移動します。

goto文の使用例:

for ($i = 0; $i < 10; $i++) {
  if ($i == 5) {
    goto ループ終了;
  }
  echo $i;
}

ループ終了:
echo "ループを抜け出しました。";

このコードを実行すると、以下の出力結果が表示されます。

0
1
2
3
4
ループを抜け出しました。

goto文の作成・使用方法

goto文を使用する場合は、以下の点に注意しましょう。

  • goto文は、本当に必要な場合にのみ使用しましょう。
  • goto文を使用する場合は、ラベル名を明確に指定しましょう。
  • goto文を使用する場合は、goto文の使用箇所をコメントで明記しましょう。

goto文のスクリプトサンプル

ループの処理を抜け出す例

<?php

// ループ開始
for ($i = 0; $i < 10; $i++) {

  // ループを抜け出す条件
  if ($i == 5) {
    // goto文を使用して、ループを抜け出す
    goto ループ終了;
  }

  // ループ処理
  echo $i;
}

// ループ終了ラベル
ループ終了:
  // ループを抜け出したことを表示
  echo "ループを抜け出しました。";

?>

このコードは、forループを使用して、0から9までの数を表示しています。

ループの条件式で、$iが5と等しい場合に、goto文を使用して、ループ終了ラベルに制御を移動します。

ループ終了ラベルでは、ループを抜け出したことを表示しています。

処理の順序を変更する例

<?php

// 条件分岐
if ($i == 5) {
  // goto文を使用して、処理の順序を変更する
  goto 処理終了;
}

// 処理
echo $i;

// 処理終了ラベル
処理終了:
  echo "処理を終了しました。";

?>

このコードは、条件分岐を使用して、$iが5と等しい場合に、処理の順序を変更しています。

条件分岐の条件式で、$iが5と等しい場合に、goto文を使用して、処理終了ラベルに制御を移動します。

処理終了ラベルでは、処理を終了したことを表示しています。

goto文特有の事柄

PHPのgoto文は、以下の点で他のプログラミング言語のgoto文と異なります。

  • goto文は、関数内のみ使用できます。
  • goto文を使用すると、プログラムの可読性や保守性が損なわれる可能性があります。

goto文のまとめ

goto文は、指定したラベルに制御を移動する文です。goto文は、C言語やJavaなどの言語でも使用できますが、PHPでは、goto文の使用は推奨されていません。

goto文を使用する場合は、本当に必要な場合にのみ使用し、ラベル名を明確に指定し、goto文の使用箇所をコメントで明記するようにしましょう。

独習PHP 第4版

PHP言語リファレンスgoto制御構造
PHPプログラミング図鑑をフォローする
PHPプログラミング図鑑