Rumah >pembangunan bahagian belakang >tutorial php >用php5.2写的程序在切换到5.3之后出现notice错误???

用php5.2写的程序在切换到5.3之后出现notice错误???

WBOY
WBOYasal
2016-06-06 20:10:06883semak imbas

以前一直用的是php5.2,但是最近发现版本略低,就切换成了php5.3(我用的是phpstudy组合包),但是在切换后,以前用php5.2写的程序就会出现notice提示,虽然不影响运行出正确结果。
用php5.2写的程序在切换到5.3之后出现notice错误???

图片描述

我以后应该用那种版本的php??我还是喜欢用组合包之类的

这是报错页面的代码:

<code><?php if(!empty($_POST)){
    $tt= $_POST['tt'];
    $id= $_POST['id'];
    $pwd= $_POST['pwd'];
    $wb= $_POST['wb'];
    $car= $_POST['car'];
    $yx= $_POST['yx'];
}
    echo "<br/>";
    // echo "<br>编程语言:$t33";    
    // print_r($t);
    echo "编程语言:";
    // 方法1:遍历数组,到那时最后的逗号无法避免
    // foreach ($t as $key => $value) {
    //     echo $value . ",";
    // }
    // 方法2:使用for循环
    $len=count($tt);//获得数组的长度
    $str="";
    for ($i=0; $i账号:$id";
    echo "<br>密码:$pwd";
    echo "<br>介绍:$wb";
    echo "<br>汽车:$car";
    echo "<br>院系:$yx";


?>
<form action="" method="POST" name="bb">
<table border="1">
<h2 align="center" class="bd">form表单练习</h2>
<p id="lan">你喜欢那种<font>语言</font>?</p>
<input type="checkbox" name="tt[]" value="python"> python
<input type="checkbox" name="tt[]" value="javascript"> javascript
<input type="checkbox" name="tt[]" value="php" checked>php
<input type="checkbox" name="tt[]" value="swift"> swift
<hr>
<p>login in</p>
Account:<input type="text" name="id" value="">
Password:<input type="password" name="pwd" value=""><br>
<input type="submit" name="sub" value="login">
<input type="reset" name="re" value="cancel">
</table>
</form>

![图片描述][1]
我感觉不是代码的问题,还是因为php版本切换导致的,你说呢???
</code>

回复内容:

以前一直用的是php5.2,但是最近发现版本略低,就切换成了php5.3(我用的是phpstudy组合包),但是在切换后,以前用php5.2写的程序就会出现notice提示,虽然不影响运行出正确结果。
用php5.2写的程序在切换到5.3之后出现notice错误???

图片描述

我以后应该用那种版本的php??我还是喜欢用组合包之类的

这是报错页面的代码:

<code><?php if(!empty($_POST)){
    $tt= $_POST['tt'];
    $id= $_POST['id'];
    $pwd= $_POST['pwd'];
    $wb= $_POST['wb'];
    $car= $_POST['car'];
    $yx= $_POST['yx'];
}
    echo "<br/>";
    // echo "<br>编程语言:$t33";    
    // print_r($t);
    echo "编程语言:";
    // 方法1:遍历数组,到那时最后的逗号无法避免
    // foreach ($t as $key => $value) {
    //     echo $value . ",";
    // }
    // 方法2:使用for循环
    $len=count($tt);//获得数组的长度
    $str="";
    for ($i=0; $i账号:$id";
    echo "<br>密码:$pwd";
    echo "<br>介绍:$wb";
    echo "<br>汽车:$car";
    echo "<br>院系:$yx";


?>
<form action="" method="POST" name="bb">
<table border="1">
<h2 align="center" class="bd">form表单练习</h2>
<p id="lan">你喜欢那种<font>语言</font>?</p>
<input type="checkbox" name="tt[]" value="python"> python
<input type="checkbox" name="tt[]" value="javascript"> javascript
<input type="checkbox" name="tt[]" value="php" checked>php
<input type="checkbox" name="tt[]" value="swift"> swift
<hr>
<p>login in</p>
Account:<input type="text" name="id" value="">
Password:<input type="password" name="pwd" value=""><br>
<input type="submit" name="sub" value="login">
<input type="reset" name="re" value="cancel">
</table>
</form>

![图片描述][1]
我感觉不是代码的问题,还是因为php版本切换导致的,你说呢???
</code>

这跟php版本没太大关系,而是你应该养成一个良好的编程习惯,不确定是否有值时要判断有才输出.

否则未关闭错误提示直接路径全部爆出来了

你应该改成:

<code>if(isset($user['yx'])){
    echo $user['yx'];
}

//或者

if(!empty($user['yx'])){
    echo $user['yx'];
}</code>

另外建议直接使用最新的稳定版本,截止到[2016/04/30]的LTS版本:5.6.21

跟版本没关系,变量没定义就使用,当然要报错!请一定注意,在使用非预定义变量的时候一定要先定义才能使用!

另外关于版本问题,根据市场份额和具体项目决定
目前建议在生产环境使用5.6
当然5.3用的最多 5.4其次
7速度最快

$tt没定义就用。而且这种没定义和版本无关,本来就会报错,只是php.ini的错误设置级别不同造成你以为5.2的就不报错

用isset先判断

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn