Php 为什么检查变量是否存在只返回1或0而不是值?

Php 为什么检查变量是否存在只返回1或0而不是值?,php,variables,wamp,echo,isset,Php,Variables,Wamp,Echo,Isset,我在页面顶部设置以下变量: $pin = $_GET['Pin']; $action = $_GET['action']; $bookingref = $_GET['bookingref']; $phone1 = $_GET['number1']; $phone2 = $_GET['number2']; 我正在使用WAMP开发我的站点,当页面加载时,我会为每个页面收到一个“未定义索引”警告 所以我想我会把它们放在一个isset里,检查它们是否存在 $pin = isset($_GET['Pin

我在页面顶部设置以下变量:

$pin = $_GET['Pin'];
$action = $_GET['action'];
$bookingref = $_GET['bookingref'];
$phone1 = $_GET['number1'];
$phone2 = $_GET['number2'];
我正在使用WAMP开发我的站点,当页面加载时,我会为每个页面收到一个“未定义索引”警告

所以我想我会把它们放在一个isset里,检查它们是否存在

$pin = isset($_GET['Pin']);
$action = isset($_GET['action']);
$bookingref = isset($_GET['bookingref']);
$phone1 = isset($_GET['number1']);
$phone2 = isset($_GET['number2']);
但是现在当我尝试回显这些值时,我得到的不是空白就是1

如何回显变量的值并保持isset检查?

这是因为返回的是布尔值(
true
false
),而不是变量本身的值。没有内置的方法来实现这一点,但您可以使用用户定义的函数轻松模拟这种行为:

摘自:

现在,您可以这样简单地使用它:

$pin        = ifsetor($_GET['Pin']);
$action     = ifsetor($_GET['action']);
$bookingref = ifsetor($_GET['bookingref']);
$phone1     = ifsetor($_GET['number1']);
$phone2     = ifsetor($_GET['number2']);
如果需要,您甚至可以使用第二个参数指定默认值。

根据变量设置与否返回true或false。您需要对所有变量执行以下操作

$pin = isset($_GET['Pin']) ? $_GET['Pin'] : '';
定义:确定变量是否已设置且不为空


isset
返回
true
false
,而不是变量的值。这是它的工作,这是它在电视上说的。典型的成语是:

$pin = isset($_GET['Pin']) ? $_GET['Pin'] : null;

因为您正在分配
isset()
的返回值,它是TRUEFALSE

您需要使用
isset()
检查它们是否存在,如果存在,则分配变量

if(isset($_GET['Pin'])){
    $pin = $_GET['Pin']
}
还是速记

$pin = (!isset($_GET['Pin'])) ?: $_GET['Pin'];
isset()返回一个布尔值,该值为True或False。正是回声显示“1”表示真,或显示“1”表示假

下面是使用isset()的最佳方法



您好,我能问一下,在投反对票时是否留下评论吗?否则。。这毫无用处。谢谢。下一位投票者想发表意见吗?请下一位投票者发表意见好吗?我能做些什么?我不会太在意-1。它可能在那里,因为很明显你没有RTFM,老实说,这就是为什么我没有投票修正它。我根本不怎么使用php.net,因为对我来说,它只是一个有点太混乱的布局。并不能很容易地解释大多数事情。我倾向于使用W3Schools,因为它们有一个更好的定义网站。我有类似的功能,可以减少重复的代码,但不会
ifsetor($\u GET['Pin'])
导致未定义的索引通知,如果未设置?@poplaines:Nope。该变量是通过引用传递的,因此不会引起通知。如果未设置该变量,则会引起通知。检查
isset($\u POST[“firstname”])
first。
$pin = (!isset($_GET['Pin'])) ?: $_GET['Pin'];
  <?php

  $data =$_POST["firstname"];
  if(isset($data))
   {        
       trim($data);
       echo $data;
   }
 else
  {
       $data="";
  }


  ?>