为什么会出现这样的提示?请看代码第6行的注释

为什么会出现这样的提示?请看代码第6行的注释

<?php

$num='0123456789';

$let='abcdefghijklmnopqrstuvwxyz';

$LET='ABCDEFGHIJKLMNOPQRSTUVWXYZ';

$str=$num.$let.$LET;//从该给定的字符串中随机抽取元素组成定长的字符串

$res="";    //我去掉这一行的话,系统运行提示未定义的变量res,虽然验证码也会出现,但是老师的视频里面也没有事先声明$char的,也没看出现提示啊??

for($i=0;$i<4;$i++){

    $res .= substr($str,mt_rand(0,strlen($str)-1),1);

}

echo $res;

?>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕查理 2017-08-16 11:51:38

您好,当您去掉$res="";时程序会报错,是由于您在循环中用到了$res变量,在之前未定义。而老师的变量没有报错是因为老师对Notice错误进行了屏蔽。您可以使用代码error_reporting(E_ALL ^ E_NOTICE);屏蔽Notice错误,也可更改php.ini文件中的error_reporting = E_ALL为error_reporting = E_ALL ^E_NOTICE,并重启服务器。如果解决了您的问题,请采纳,祝学习愉快!

  • 提问者 Raaaaaaay #1
    也就是说,php这一门弱语言虽然可以不声明变量直接使用,但其实还是会报一个Notice级的信息出来的?
    2017-08-16 14:08:52
  • 好帮手慕查理 回复 提问者 Raaaaaaay #2
    您好,您的理解是正确的。祝学习愉快!
    2017-08-16 14:57:03
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师