我在页面顶部设置了以下变量:
$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检查?
因为您正在分配isset()
的返回值,该值为TRUE或FALSE。
您需要使用isset()
来检查它们是否存在,如果存在,则分配变量。
if(isset($_GET['Pin'])){
$pin = $_GET['Pin']
}
或简写的三进制替代
$pin = (!isset($_GET['Pin'])) ?: $_GET['Pin'];
isset
返回true
或false
,而不是变量的值。这是它的职责,罐头上是这么写的。典型的习语是:
$pin = isset($_GET['Pin']) ? $_GET['Pin'] : null;
这是因为isset()
返回一个布尔值(true
或false
),而不是变量本身的值。没有内置的方法来实现这一点,但是您可以使用用户定义的函数轻松地模拟此行为:
摘自我的回答:
function ifsetor(&$value, $default = null) {
return isset($value) ? $value : $default;
}
现在你可以简单地像这样使用它:
$pin = ifsetor($_GET['Pin']);
$action = ifsetor($_GET['action']);
$bookingref = ifsetor($_GET['bookingref']);
$phone1 = ifsetor($_GET['number1']);
$phone2 = ifsetor($_GET['number2']);
如果你愿意,你甚至可以使用第二个参数指定一个默认值。
isset 根据变量是否设置返回true或false。你需要做的是像下面这样对所有变量
$pin = isset($_GET['Pin']) ? $_GET['Pin'] : '';
定义:判断一个变量是否被设置并且不为NULL
isset()返回一个布尔值True或False。 echo
为true时显示"1",为false时显示"
<?php
$data =$_POST["firstname"];
if(isset($data))
{
trim($data);
echo $data;
}
else
{
$data="";
}
?>