Php 引发未定义变量通知的奇怪情况
我的这一行代码很简单:Php 引发未定义变量通知的奇怪情况,php,Php,我的这一行代码很简单: if(isset($_POST['prodotto'])){$prodotto = $_POST['prodotto'];}else{$prodotto=='';} 他正在提出一个php通知 [php7:通知][pid 47861][client 10.211.55.2:63940]PHP通知: 未定义变量:prodotto in/media/psf/Sites/login/login.php on 第44行 但我并不期望出现这种情况,因为据我所知,这行代码应该始终定义
if(isset($_POST['prodotto'])){$prodotto = $_POST['prodotto'];}else{$prodotto=='';}
他正在提出一个php通知
[php7:通知][pid 47861][client 10.211.55.2:63940]PHP通知:
未定义变量:prodotto in/media/psf/Sites/login/login.php on
第44行
但我并不期望出现这种情况,因为据我所知,这行代码应该始终定义它:使用POST值或空值。我知道这只是一个通知,但我也想把它扔掉
我错过了什么
在我的代码后面,我重复使用这个变量,如下所示:
die(json_encode(array('status'=>'success','message' => 'Benvenuto', 'prodotto'=>$prodotto, 'stripe_customer'=>$row['stripe_customer'])));
我再次收到了关于
$prodotto
的相同通知(这是在前面显示的代码行中设置的)您在else语句中进行了等价处理,而不是初始化
if(isset($_POST['prodotto'])){
$prodotto = $_POST['prodotto'];
} else {
$prodotto =''; // not ==
}
或者你也可以
$prodotto = '';
if(isset($_POST['prodotto'])){
$prodotto = $_POST['prodotto'];
} // avoid else
甚至更好
$prodotto = $_POST['prodotto'] ?? ''; // null coalescing operator
您正在else语句中进行等值,而不是初始化
if(isset($_POST['prodotto'])){
$prodotto = $_POST['prodotto'];
} else {
$prodotto =''; // not ==
}
或者你也可以
$prodotto = '';
if(isset($_POST['prodotto'])){
$prodotto = $_POST['prodotto'];
} // avoid else
甚至更好
$prodotto = $_POST['prodotto'] ?? ''; // null coalescing operator
您有
$prodotto='';
而不是$prodotto='';
。因此,您在else
案例中分配了一个新变量。您有$prodotto='';
而不是$prodotto='';
。因此,您在else
案例中分配了一个新变量。或者更好,并且避开了任何这样的情况问题,$prodotto=$\u POST['prodotto']??;
@Jon谢谢。这是一个很好的提示!或者更好,避开任何此类问题,$prodotto=$\u POST['prodotto']??;
@Jon谢谢。这是一个很好的提示!