search

Home  >  Q&A  >  body text

php如何判断get或post的值是否存在

php如何判断get或post的值是否存在,这个问题困扰了我很长时间,是用isset还是empty还是is_array啥的,请大神给一个指点

PHP中文网PHP中文网2835 days ago505

reply all(6)I'll reply

  • ringa_lee

    ringa_lee2017-04-10 16:41:23

    isset()是判断这个变量是否定义,empty()是在这个变量已经定义的情况下(如果变量没定义,将报错variable is undefinded),判断这个变量是否为null,空字符串,空数组都被empty()视为空,返回true。举个例子,比如传过来一个表单$user('name'=>'tom','nickname'=>''),你想判断$use['nickname']是都已经被用户填写了数据,可以用empty()来判断,比如你的表单里面本来有password字段,但是第三方登录注册的用户暂时没有密码字段,这你就需要判断isset($user['password'])了,isset和empty有本质上的区别,希望我举的例子可以为你的理解提供帮助~

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 16:41:23

    可以利用$_SERVER['REQUEST_METHOD']来判断是什么请求类型
    可以看看官方的解释
    $_SERVER — 服务器和执行环境信息

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 16:41:23

    来来来,手把手教
    $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'] : '';

    reply
    0
  • 怪我咯

    怪我咯2017-04-10 16:41:23

    我个人的写法就是[全部检查],这样能避免各种错误的产生。毕竟安全性跟全面性在普通项目里面还是用的比较多的。

    //我所有的项目都有包括一个custom_function.php的公共文件。
    
    function check_var( $var, $default = ''){
        return( (isset($var) and !empty($var )) ? $var : (!empty($default) ? $default : false) );
        
    }
    // 这样我就可以在我任何的文件里面调用全局函数检测变量:
    
    $array =['id'=>123];
    
    var_dump( check_var( $array['id'] ) ); // 输出 int(123) 
    var_dump( check_var( $array['code'] ) ); // 输出 bool(false) 
    var_dump( check_var( $array['code'], 'not set') ); // 输出 string(7) "not set" 

    reply
    0
  • ringa_lee

    ringa_lee2017-04-10 16:41:23

    先弄清楚 isset、empty、is_null等这些变量判断函数的作用,再根据你的使用场景去使用对应的函数:
    php empty,isset,is_null比较 参考1
    php empty,isset,is_null比较 参考2
    php empty,isset,is_null比较 参考3
    变量判断附录

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-10 16:41:23

    // 先判断是否通过get方式传参了
    // get传参的值存入到$_GET数组里面
    if (is_array($_GET) && count($_GET) > 0) {
        // isset监测变量是否有设置
        if (isset($_GET['parent_id'])) {
            $get_parent_id = $_GET['parent_id'];
            print_r($get_parent_id);
        }
    }

    reply
    0
  • Cancelreply