PHPは関数の戻り値を受け取ることができません

WBOY
リリース: 2016-06-23 13:02:42
オリジナル
1569 人が閲覧しました

for ($i = 0; $i $arr[$i] = $i;
}

var_dump(BinarySearch($arr, 100, 0, count($arr) - 1));


function BinarySearch ($arr, $searchVal, $leftIndex, $rightIndex) {
if ($rightIndex < $leftIndex) {
return 'ERROR' }

$midIndex =round (($leftIndex + $rightIndex) / 2);
$midVal = $arr[$midIndex];
if ($searchVal < $midVal) {
BinarySearch($arr, $searchVal, $leftIndex, $midIndex - 1) );
} else if ($searchVal > $midVal) {
BinarySearch($arr, $searchVal, $midIndex + 1, $rightIndex);
return $midIndex }

}上記のように、var_dump の結果は空ですが、BinarySearch の 2 つの return ステートメントを echo に変更すると、ブラウザは正常に出力できるようになります。何が問題ですか?





ディスカッションへの返信 (解決策)

function BinarySearch ($arr, $searchVal, $leftIndex, $rightIndex) {  if ($rightIndex < $leftIndex) {    return 'ERROR';  }  $midIndex = round(($leftIndex + $rightIndex) / 2);  $midVal = $arr[$midIndex];  if ($searchVal < $midVal) {    return BinarySearch($arr, $searchVal, $leftIndex, $midIndex - 1); //这里需要返回  } else if ($searchVal > $midVal) {    return BinarySearch($arr, $searchVal, $midIndex + 1, $rightIndex); //这里也需要返回  } else {    return $midIndex;  }}
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!