设置$errors=[]

设置$errors=[]

问题一:

http://img1.sycdn.imooc.com//climg/5d71e316000162ac08460495.jpg

http://img1.sycdn.imooc.com//climg/5d71e3250001547807410307.jpg


老师说设置$errors=[]会报错,但是我试着运行了,没有问题呢。设置$errors=[]和设置$errors的运行结果都是一样的。这是为什么呢?




问题二:

http://img1.sycdn.imooc.com//climg/5d71e3eb0001d7a506360317.jpg

还有我看了老师给其他同学的回答,请问这里的$key不是$files的下标吗,这里的$key=0应该是可以的把?


问题三:

这是我设置$errors=[]的情况在运行的,上传的第一个文件有问题的时候,就显示$key是0。这样的情况下是可以的吗?

http://img1.sycdn.imooc.com//climg/5d71e4b80001cb1107700277.jpg



问题四:

请问设置$errors=[]和设置$errors有什么区别呢?

这两个设置在下图中不是都是数组的意思吗?

http://img1.sycdn.imooc.com//climg/5d71e69300010dbf04610156.jpg


麻烦老师一个个问题分点解答,谢谢!


正在回答

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

1回答

同学你好,1. 因为有错误的文件上传就会触发setError方法,而在方法中有为errors属性进行赋值,可如果没有进行赋值就会报错(报错信息:注意:未定义偏移量:0)。同学可以尝试上传不会导致错误的文件,就可以看见报错信息了,如图所示:

    http://img1.sycdn.imooc.com//climg/5d71f89b00014c0216210122.jpg

2. 老师的意思是在给errors属性默认值时,会自动生成一个下标0,但因下标0是没有值的,所以在打印时会导致报错。

3. 同学在上传有问题的时,会setError方法为属性errors进行赋值,所以是不会出现错误的,但如果都上传没有问题的文件就会报错。

4. 为errors设置默认值会出自动生成一个下标0的数据,但没有值,所以当上传文件没有问题时,打印此属性是就会报错。没有默认值时errors属性值就是null(空),所以不会报错。

祝学习愉快!

  • weixin_慕沐1043483 提问者 #1
    我试过上传不会导致错误的文件了,也还是没有报错呢!
    2019-09-06 14:37:23
  • weixin_慕沐1043483 提问者 #2
    “为errors设置默认值会出自动生成一个下标0的数据,但没有值,所以当上传文件没有问题时,打印此属性是就会报错。没有默认值时errors属性值就是null(空)”这句话还是不是很懂。设置了默认值$errors=[],当没有产生错误的时候,就不会有$erroe这个值,$errors[$key][] = $error不就是相当于['key'=>[]]这样吗?为什么会出错?如果是不设置默认值,$errors[$key][] = $error不也是相当于['key'=>[]]这个吗?
    2019-09-06 14:57:31
  • 同学你好,同学PHP环境是否开启display_errors,同学可以通过php.ini文件进行查看。或同学在代码中是否使用error_reporting函数,抑制错误。祝学习愉快!
    2019-09-06 14:58:28
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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