以前一直用的是php5.2,但是最近發現版本略低,就切換成了php5.3(我用的是phpstudy組合包),但是在切換後,以前用php5.2寫的程式就會出現notice提示,雖然不影響運行出正確結果。
圖片描述
我以後應該用那種版本的php??我還是喜歡用組合包之類的
這是報錯頁面的代碼:
"; // echo "
程式設計語言:$t33"; // print_r($t); echo "程式設計語言:"; // 方法1:遍曆數組,到那時最後的逗號無法避免 // foreach ($t as $key => $value) { // echo $value . ","; // } // 方法2:使用for迴圈 $len=count($tt);//獲得數組的長度 $str=""; for ($i=0; $i<$len ; $i++) { if ($i==$len-1) { // $str.=$tt[$i] . "。"; $str=$str . $tt[$i] ."。。"; } else{ $str.=$tt[$i] .","; } } echo $str; echo "
帳號:$id"; echo "
密碼:$pwd"; echo "
介紹:$wb"; echo "
汽車:$car"; echo "
院系:$yx";?>![圖片描述][1]我感覺不是代碼的問題,還是因為php版本切換導致的,你說呢???
回複內容:
以前一直用的是php5.2,但是最近發現版本略低,就切換成了php5.3(我用的是phpstudy組合包),但是在切換後,以前用php5.2寫的程式就會出現notice提示,雖然不影響運行出正確結果。
圖片描述
我以後應該用那種版本的php??我還是喜歡用組合包之類的
這是報錯頁面的代碼:
"; // echo "
程式設計語言:$t33"; // print_r($t); echo "程式設計語言:"; // 方法1:遍曆數組,到那時最後的逗號無法避免 // foreach ($t as $key => $value) { // echo $value . ","; // } // 方法2:使用for迴圈 $len=count($tt);//獲得數組的長度 $str=""; for ($i=0; $i<$len ; $i++) { if ($i==$len-1) { // $str.=$tt[$i] . "。"; $str=$str . $tt[$i] ."。。"; } else{ $str.=$tt[$i] .","; } } echo $str; echo "
帳號:$id"; echo "
密碼:$pwd"; echo "
介紹:$wb"; echo "
汽車:$car"; echo "
院系:$yx";?>![圖片描述][1]我感覺不是代碼的問題,還是因為php版本切換導致的,你說呢???
這跟php版本沒太大關係,而是你應該養成一個良好的編程習慣,不確定是否有值時要判斷有才輸出.
否則未關閉錯誤提示直接路徑全部爆出來了
你應該改成:
if(isset($user['yx'])){ echo $user['yx'];}//或者if(!empty($user['yx'])){ echo $user['yx'];}
另外建議直接使用最新的穩定版本,截止到[2016/04/30]的LTS版本:5.6.21
跟版本沒關係,變數沒定義就使用,當然要報錯!請一定注意,在使用非預定義變數的時候一定要先定義才能使用!
另外關於版本問題,根據市場份額和具體項目決定
目前建議在生產環境使用5.6
當然5.3用的最多 5.4其次
7速度最快
$tt沒定義就用。而且這種沒定義和版本無關,本來就會報錯,只是php.ini的錯誤順位不同造成你以為5.2的就不報錯
用isset先判斷