isset()是判断这个变量是否定义,empty()是在这个变量已经定义的情况下(如果变量没定义,将报错variable is undefinded),判断这个变量是否为null,空字符串,空数组都被empty()视为空,返回true。举个例子,比如传过来一个表单$user('name'=>'tom','nickname'=>''),你想判断$use['nickname']是都已经被用户填写了数据,可以用empty()来判断,比如你的表单里面本来有password字段,但是第三方登录注册的用户暂时没有密码字段,这你就需要判断isset($user['password'])了,isset和empty有本质上的区别,希望我举的例子可以为你的理解提供帮助~
isset()是判断这个变量是否定义,empty()是在这个变量已经定义的情况下(如果变量没定义,将报错variable is undefinded),判断这个变量是否为null,空字符串,空数组都被empty()视为空,返回true。举个例子,比如传过来一个表单$user('name'=>'tom','nickname'=>''),你想判断$use['nickname']是都已经被用户填写了数据,可以用empty()来判断,比如你的表单里面本来有password字段,但是第三方登录注册的用户暂时没有密码字段,这你就需要判断isset($user['password'])了,isset和empty有本质上的区别,希望我举的例子可以为你的理解提供帮助~
可以利用$_SERVER['REQUEST_METHOD']来判断是什么请求类型
可以看看官方的解释
$_SERVER — 服务器和执行环境信息
来来来,手把手教
$apply_name = isset($_POST['apply_name']) ? $_POST['apply_name'] : '';
或者
$apply_name = isset($_GET['apply_name']) ? $_GET['apply_name'] : '';
如果连get和post都不知道,就
$apply_name = isset($_REQUEST['apply_name']) ? $_REQUEST['apply_name'] : '';
我个人的写法就是[全部检查],这样能避免各种错误的产生。毕竟安全性跟全面性在普通项目里面还是用的比较多的。
先弄清楚 isset、empty、is_null等这些变量判断函数的作用,再根据你的使用场景去使用对应的函数:
php empty,isset,is_null比较 参考1
php empty,isset,is_null比较 参考2
php empty,isset,is_null比较 参考3
变量判断附录