isset PHP5是否兼性

isset PHP5是否兼性,php,Php,为什么我们在这里使用isset和!空的? 是否必须使用它,因为isset检查变量是否已设置,并且$\u POST是已设置的超全局变量 <?php include 'Config.php'; $email = ""; $mdp = ""; $e = array(); if(isset($_POST)) { if(!empty($_POST)) { $email = $_POST['adresse_em

为什么我们在这里使用
isset
!空的

是否必须使用它,因为isset检查变量是否已设置,并且
$\u POST
是已设置的超全局变量

 <?php
    include 'Config.php';
    $email  = "";
    $mdp    = "";
    $e = array();
    if(isset($_POST))
    {
     if(!empty($_POST))
     {
      $email  = $_POST['adresse_email'];
      $mdp    = $_POST['motpasse'];
   ...
isset()
检查变量是否存在,但不检查其内容

稍后使用
empty()
检查它是否为空字符串

在本例中,由于
$\u POST
是一个数组,并且您没有说明从哪个位置拾取值,
empty()
将检查数组是否包含任何位置


正如秘书长在评论中提到的那样,这两项核查毫无意义。您只需检查脚本的请求方法是否为
POST


在您的示例中,
isset()
用于检查是否设置了
$\u POST
超全局变量,但它是冗余代码
empty()
已经包含了
isset()的功能,但也做了更多。从文件中:

如果var存在且具有非空、非零值,则返回FALSE。 否则返回TRUE

以下内容被认为是空的:

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)
。。。因此,它还将检查$\u POST数组中是否包含元素(不是空数组)

对于简单的web表单检查,请使用
!空($\u POST)
比写
$\u服务器['REQUEST\u METHOD']=='POST'
更容易,但结果是一样的,如果请求不是通过POST发出的,它们都不会匹配

另外,在代码中,如果未定义索引(如果元素未以表单形式提交),还可以在$\u POST元素上使用
isset()
,以排除PHP发出的警告:


这两个ifs都是无用的,您可以使用
if($\u SERVER['REQUEST\u METHOD']=='POST'){
来知道这是POST-rquest。请参阅此qiestion并给出答案:isset()检查变量是否存在,我们知道存在$\u POST,那么为什么我们使用isset?这是我的问题,您没有。这是没有用的。除非您所在的页面不是来自表单提交。
"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)
$email  = isset($_POST['adresse_email']) ? $_POST['adresse_email'] : '';
$mdp    = isset($_POST['motpasse']) ? $_POST['motpasse'] : '';