php empty 错误

【错误详情】:Fatal error: Can‘t use function return value in write context in ……

【错误经过】:  来看这么一段程序

[php] 
view plain
copy
print
?

  1. $value = $_POST[‘username‘];
  2. if (empty(trim($value))){
  3. echoError(‘请输入用户名!‘);
  4. }

乍一看上去很简单,没什么问题,可经过异常排查后确定就是这一小段程序出现了上面的Fatal error~,于是首先怀疑自定义方法echoError的实现存在什么问题,可经过排查后问题不是出在这里,十分不解,最后经过查询手册发现empty()方法在最后有这么一小段解释:

Note: empty() 只检测变量,检测任何非变量的东西都将导致解析错误。换句话说,后边的语句将不会起作用: empty(addslashes($name))。

明白了~ 程序结构改变:

[php] 
view plain
copy
print
?

  1. $value = trim($_POST[‘username‘]);
  2. if (empty($value)){
  3. echoError(‘请输入用户名!‘);
  4. }
时间: 2024-08-29 10:48:37

php empty 错误的相关文章

eclipse错误之Context root cannot be empty

初次遇见这个问题,是在从git上将maven工程进行拉取,出现了这个错误.其情况为tomcat可以启动成功,但是该web工程未被tomcat工程启动起来 在右键工程->properties->Web project Settings 时,发现其Context root为空,且报出Context root ...not be empty 错误 手动往内部输入字符时,不管你是否带有 / 都会被置为空 其实,解决该问题的方法为,进入该文件所在的工程文件夹下,如果想不起来工程在何处,可以使用 这个图标

Oracle 错误收集

Oracle 错误大全 ORA-00001: 违反唯一约束条件 (.)ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数ORA-00019: 超出最大会话许可数ORA-00020: 超出最大进程数 ()ORA-00021: 会话附属于其它某些进程:无法转换会话ORA-00022: 无效的会话 ID:访问被拒绝ORA-00023: 会话引用进程私用内存:无法分离会话ORA-00024: 单一进程模式下不允许从多个进程注册ORA-00025: 无法分配 ORA-0002

Oracle 错误总结及问题解决 ORA

参考地址 ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常.ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数ORA-00019: 超出最大会话许可数ORA-00020: 超出最大进程数 ()ORA-00021: 会话附属于其它某些进程:无法转换会话ORA-00022: 无效的会话 ID:访问被拒绝ORA-00023: 会话引用进程私用内存:无法分离会话ORA-00024: 单一进程模式下不允许从多个进程注册

Django--bug--ImproperlyConfigured: The SECRET_KEY setting must not be empty.

Django配置Restframework后,建立用户模型,执行迁移的时候报如下错误: django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty. 错误原因: manage.py中米有settigs的路径没有配置正确,导致执行的时候访问不到settings.py,所以报错 解决办法: 在manage.py中添加具体的配置文件即可 if __name__ == "__main__&qu

ora错误解释

ORA-00001: 违反唯一约束条件 (.)错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常.ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数ORA-00019: 超出最大会话许可数ORA-00020: 超出最大进程数 ()ORA-00021: 会话附属于其它某些进程:无法转换会话ORA-00022: 无效的会话 ID:访问被拒绝ORA-00023: 会话引用进程私用内存:无法分离会话ORA-00024: 单一进程模式下不允许从多个进程注册ORA-0

C++ Primer 笔记之使用迭代器

使用迭代器 和指针不一样,获取迭代器不是使用取址符,有迭代器的类型同时拥有返回迭代器的成员.比如,这些类型都拥有名为begin和end的成员,其中begin成员负责返回第一个元素(或第一个字符)的迭代器.如有下述语句: //由编译器决定b和e的类型 //b表示v的第一个元素,e表示v尾元素的下一位置 auto b = v.begin(), e = v.end(); //b和e的类型相同 end成员则负责返回指向容器(或string对象)"尾元素的下一位置(one past the end)&qu

C++ Prime:switch内部的变量定义

如果需要为某个case分支定义并初始化一个变量,我们应该把变量定义在块内,从而确保后面的所有case标签都在变量的作用域之外. case true: { // 正确,声明语句位于语句块内部 string file_name = get_file_name(); // …… } break; case false: if(file_name.empty()) // 错误,file_name不在作用域内

返回类型和return语句

return语句终止当前正在执行的函数并将控制权返回到调用该函数的地方.return语句有两种形式: return; return expression; 无返回值函数 没有返回值的return语句只能用在返回类型是void的函数中.返回void的函数不要求非得有return语句,因为在这类函数的最后一句后面会隐含地执行return. 通常情况下,void函数如果想在它的中间位置提前退出,可以使用return语句.return的这种用法有点类似于我们用break语句退出循环. 一个返回类型是vo

c++ primer 5th 笔记:第六章

第六章 笔记 1. 通过调用运算符(call operator)来执行函数.调用运算符的形式是一对圆括号,它作用于一个表达式,该表达式是一个函数或指向函数的指针. 2. 在c++语言中,名字有作用域,对象有生命周期. a. 名字的作用域是程序文本的一部分,名字在其中可见. b. 对象的生命周期是程序执行过程中该对象存在的一段时间. 3. 函数体是一个语句块,块构成一个新的作用域. 4. 形参和函数体内部定义的变量统称为局部变量(local variable). 5. 局部静态对象(local s