勉強したことのメモ

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

  関連記事

PHPでデータをファイルキャッシュさせる(Cache_Lite)
PHPでデータをファイルキャッシュさせる(Cache_Lite)

最近携わった案件でPHPでファイルキャッシュをしているシステムがあった。今までフ ...

PHPで多次元連想配列のキーを指定してソート
PHPで多次元連想配列のキーを指定してソート

やりたかった事は、 ・多次元配列があってcodeというキーでソートしたい という ...

PhpSpreadsheetでExcelファイルを読み込みPHPの配列として取り扱う方法
PhpSpreadsheetでExcelファイルを読み込みPHPの配列として取り扱う方法

formからCSVファイルをアップロードし、PHPの配列に格納後、データベース登 ...

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

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

CodeIgniter4で簡易版ログインシステムの実装方法(管理画面向け)
CodeIgniter4で簡易版ログインシステムの実装方法(管理画面向け)

CodeIgniter4で管理画面向けの簡易版ログインシステムを作成したい。通常 ...