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()
的返回值,它是TRUE或FALSE
您需要使用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="";
}
?>