ホームページ > バックエンド開発 > PHPチュートリアル > アドバイスを求める初心者、それに対処する方法

アドバイスを求める初心者、それに対処する方法

WBOY
リリース: 2016-06-13 12:13:10
オリジナル
1000 人が閲覧しました

初心者がアドバイスを求めています
コードは次のとおりです

<?php<br />function Contrast($arr,$r,$c,&$numb){<br />	if($arr[$r][$c]==$arr[$r][$c+1]){<br />		$c++;<br />		$numb++;		<br />		Contrast($arr,$r,$c,$numb);		<br />	}else{	  <br />	  echo $numb."</br>";<br />	  return  $numb;	  <br />	}<br />}<br /><br />$arr=array(array(0,0,0,1,1,1,1,1,1,0,0,));<br />$r=0;<br />$c=3;<br />$numb=0;<br />$d=Contrast($arr,$r,$c,$numb);<br />var_dump($d);<br />?>
ログイン後にコピー


出力は次のとおりです
関数が値を返さないのはなぜですか?
------解決策のアイデア----------------------
行 6 return を追加: return Contrast( $arr,$r,$c,$numb);
------解決策のアイデア--------------------- -
このブランチの再帰には戻り値がありません
<br />    if($arr[$r][$c]==$arr[$r][$c+1]){<br />        $c++;<br />        $numb++;       <br />        Contrast($arr,$r,$c,$numb);       <br />    }else{ <br />
ログイン後にコピー


次のように変更されました:
<br /><?php<br />function Contrast($arr,$r,$c,&$numb){<br />    if($arr[$r][$c]==$arr[$r][$c+1]){<br />        $c++;<br />        $numb++;       <br />        return Contrast($arr,$r,$c,$numb);       <br />    }else{      <br />      echo $numb."</br>";<br />      return  $numb;      <br />    }<br />}<br /> <br />$arr=array(array(0,0,0,1,1,1,1,1,1,0,0,));<br />$r=0;<br />$c=3;<br />$numb=0;<br />$d=Contrast($arr,$r,$c,$numb);<br />var_dump($d);<br />?><br />
ログイン後にコピー


5
int(5)

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート