我在页面顶部设置以下变量:
$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检查?
答案 0 :(得分:3)
isset
会返回true
或false
,而不是变量的值。这是它的工作,它在the can上的内容。典型的习语是:
$pin = isset($_GET['Pin']) ? $_GET['Pin'] : null;
答案 1 :(得分:3)
因为您指定了isset()
的返回值,即 TRUE 或 FALSE 。
您需要使用isset()
检查它们是否存在,然后分配变量。
if(isset($_GET['Pin'])){
$pin = $_GET['Pin']
}
或简写ternary替代
$pin = (!isset($_GET['Pin'])) ?: $_GET['Pin'];
答案 2 :(得分:2)
这是因为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']);
如果需要,您甚至可以使用第二个参数指定默认值。
答案 3 :(得分:2)
isset 根据变量设置或不设置返回true或false。你需要做的是对所有变量,如下,
$pin = isset($_GET['Pin']) ? $_GET['Pin'] : '';
定义:确定变量是否已设置且不是NULL
答案 4 :(得分:0)
isset()返回一个True或False的布尔值。 echo
显示“1”表示true,或“”表示false。
我想这是使用isset()的最佳方法
<?php
$data =$_POST["firstname"];
if(isset($data))
{
trim($data);
echo $data;
}
else
{
$data="";
}
?>