勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPでdo-while(0)構文を利用する際のメリット

   2024/01/12  PHP

あるソースコード上にdo-whileという構文が使われていた。見たことのない構文なのでどういった際に使用するのか調べた内容を以下にメモ。

 

リファレンス

https://www.php.net/manual/ja/control-structures.do.while.php

 

ソースコード

do {
    //処理内容

    //エラーの場合は処理を抜ける
    if( $test ){
        break;
    }

    //処理内容

    if( $hoge ){
        break;
    }
} while (0);

以下のようなメリットがある模様。

  • エラー時はbreakで処理を終了できる
  • 無限ループに陥らない
  • ネストが深くなりにくい

途中で一個でも引っかかればbreakで抜けてエラー側の処理、最後まで生き残ればサクセス処理みたいな形で使うとよさげ。

 

参考サイト

http://sla0.jp/2012/02/do-while%E3%81%AE%E6%84%8F%E5%A4%96%E3%81%AA%E4%BD%BF%E3%81%84%E6%96%B9/
http://hateda.hatenadiary.jp/entry/2012/11/05/do_while
http://www.phppro.jp/phpmanual/php/control-structures.do.while.html

 - PHP

  関連記事

Stripeでキャンセル処理を行う際に「$config must be a string ~」エラーが出る場合の対応方法
Stripeでキャンセル処理を行う際に「$config must be a string ~」エラーが出る場合の対応方法

Stripeにて先日メモした内容でキャンセル(返金)処理をしようとしたところ1件 ...

PHP Simple HTML DOM Parserを使用したスクレイピング方法
PHP Simple HTML DOM Parserを使用したスクレイピング方法

PHPでスクレイピングする際、preg_match_all等を用いて必要なデータ ...

CAPTCHAに代わる無料のツール「Cloudflare Turnstile」の導入方法
CAPTCHAに代わる無料のツール「Cloudflare Turnstile」の導入方法

CAPTCHAと言えばGoogleのreCAPTCHAを思い浮かべるが、稀にCl ...

PHPで一括出力ではなく、ひとつずつ順次に出力する方法
PHPで一括出力ではなく、ひとつずつ順次に出力する方法

PHPで重たい処理とかをしている際に、途中報告みたいな形で順次出力させる方法のメ ...

PHPで日時のフォーマットをISO 8601型とDateTime型を相互に変換する方法
PHPで日時のフォーマットをISO 8601型とDateTime型を相互に変換する方法

他社のAPI等のレスポンスで日時部分が「YYYY-MM-DDTHH:II:SSZ ...