isset函数通过条件工作吗?

时间:2019-02-28 01:49:23

标签: php

我正在尝试学习PHP,并且我有一个表单,只有名称字段

 <!DOCTYPE html>
<html>
<head>
    <title>Form</title>
</head>
<body>

<form action="<?php htmlspecialchars($_SERVER['PHP_SELF'])?>" method="POST">
    <h3>Name</h3>
    <input type="text" name="name">
    <input type="submit" name="send" value="send">
</form>

添加isset方法,以便该错误不会将我标记为“ 注意:未定义的索引:C:\ xampp \ htdocs中的名称“

<?php

$nombre = isset($_POST["name"]);

if($nombre=="nat"){
    echo "good job";

    } else{
        echo " dont say nothing ";
        }

?>

但这总是打印出“好工作”

我的意思是,无论您在输入中写什么,条件始终为真

但是如果我删除isset方法,条件条件将按预期工作,但是会显示“ Notice:Undefined index:name in C:\ xampp \ htdocs”

2 个答案:

答案 0 :(得分:0)

因此,$_POST$_POST['name']总是在发送表单后设置,但是其内容可能为空。 !empty()已经检查了该值是否已设置,您也可以使用以下版本:

if(!empty($_POST["name"]) and $_POST["name"] == "nat" ){
    echo "good job";
} else{
    echo " dont say nothing ";
}

查看文档:{​​{3}}

答案 1 :(得分:0)

xpath仅返回<div class="option mli-body-1 selected ng-star-inserted" tabindex="0" ng-reflect-klass="option mli-body-1" ng-reflect-ng-class="[object Object]"> <mat-checkbox class="mat-checkbox mat-accent mat-checkbox-checked" ng-reflect-checked="true" id="mat-checkbox-97"> <label class="mat-checkbox-layout" for="mat-checkbox-97-input"> <div class="mat-checkbox-inner-container"> <input class="mat-checkbox-input cdk-visually-hidden" type="checkbox" id="mat-checkbox-97-input" tabindex="0" aria-label="" aria-checked="true"> <div class="mat-checkbox-ripple mat-ripple" matripple="" ng-reflect-centered="true" ng-reflect-radius="25" ng-reflect-animation="[object Object]" ng-reflect-disabled="false" ng-reflect-trigger="[object HTMLLabelElement]"></div> <div class="mat-checkbox-frame"></div> <div class="mat-checkbox-background"> <svg xml:space="preserve" class="mat-checkbox-checkmark" focusable="false" version="1.1" viewBox="0 0 24 24"> <path class="mat-checkbox-checkmark-path" d="M4.1,12.7 9,17.6 20.3,6.3" fill="none" stroke="white"></path> </svg> <div class="mat-checkbox-mixedmark"></div> </div> </div> <span class="mat-checkbox-label"> <span style="display:none">&nbsp;</span> <mli-selected-text ng-reflect-text="Inforce (3)" ng-reflect-highlighted=""> <span>Inforce (3)</span> </mli-selected-text> </span> </label> </mat-checkbox> </div> TRUE,但不返回变量的值。因此,设置参数后,您的情况就会变成:

//input[@aria-checked='true']/following::span[contains(text(),'Inforce')]

这是成功的,因为PHP的类型杂耍。当您与布尔值进行比较时,它会将另一个值转换为布尔值,并且任何非空字符串都将转换为isset()

如果将其更改为:

true

false比较不会打杂,它总是会失败。

您可以这样做:

if (true == "nat")

然后您的比较将按预期进行。