忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

【PHP】関数の戻り値を複数にする方法(list関数)

今回はPHPのプログラムを組んでいて、 関数array_keysを利用して配列のキーの中に、指定されたキーの存在チェックを行う為に 使っていたのですが、指定されたキーが無かった場合はどうなるのかなと思い、調べてみました。

PHPの公式のマニアルには以下の様な例が載っています。

<?php
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));

$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));

$array = array("color" => array("blue", "red", "green"),
               "size"  => array("small", "medium", "large"));
print_r(array_keys($array));
?>

これを実行すると以下の様になります。

Array
(
    [0] => 0
    [1] => color
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => color
    [1] => size
)

確かにこれで例としては問題無いのですが、結果としてキー値が返るものしか載っていません。 まあ、該当しないキー値を指定した場合は自分で調べればいいのですが。 そこで、2番目の例で、キーが存在しない yellow でやってみました。

<?php
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "yellow"));
?>

この結果は、以下の様になります。

Array
(
)

結果としては、空のarrayが返ります。 この結果に対して、count()を取ってやれば、0となります。 また、foreachで処理しても結果の配列は空なので、以下の様に処理されないことになります。

<?php
$array = array("blue", "red", "green", "blue", "blue");
/* array_keys:配列内にデータが存在 */
foreach (array_keys($array, "blue") as $arrValue) {
    echo "KEY=".$arrValue."\n";
}

/* array_keys:空の配列が返る */
foreach (array_keys($array, "yellow") as $arrValue) {
    echo "KEY=".$arrValue."\n";
}
?>

PHPのマニアルも空の配列の例が載っていると助かるのですが・・・












PR

コメント

コメントを書く