サンプル集  >  PHP  >  プログラムの書き方について
プログラムの書き方について
2008/07/10

phpを見ていたらこんなロジックを見かけました。

<?php
while(true) {
    if(is_null($argv[1]) {
        echo "error!!\n";
        break;
    }

    :
    何か処理
    :

    break;
}
?>

whileで回しても、結局ifに入ろうが入るまいがbreakするのでwhileはいらないのでは?と思いました。

よくよく見てみると、ifに入った場合、「何か処理」の部分の処理を行いたくない・・・という作りであることが分かりました。

こういう場合、関数化した方が良いのではないでしょうか。

<?php
function mainLogic($argv1) {
    if(is_null($argv1) {
        echo "error!!\n";
        return;
    }

    :
    何か処理
    :
}

mainLogic($argv[1]);
?>

while(true)だと、break忘れると無限ループになるので危険です。

関数化した方が絶対いいと思い、コーディング後実行したら「関数の外で宣言した変数が使えない」というエラーが出ました。。。

<?php
$dbCon = new DBMysql();

function mainLogic($argv1) {
    :
    何か処理
    :
}

mainLogic($argv[1]);
?>

この場合、mainLogic関数の中で$dbConが使えません。 そこで$dbConを引数で渡すようにしてみました。

<?php
$dbCon = new DBMysql();

function mainLogic($argv1, $dbCon) {
    :
    何か処理
    :
}

mainLogic($argv[1], $dbCon);
?>

これでちゃんと動きました。

▲ PageTop  ■ Home


Copyright (C) 2012 ymlib.com