我缺少什么 php 概念?

这是给大家的一个简单的菜鸟问题!


我正在做一个 PHP tuorial,一个疯狂的 libs 小程序的指导代码是:


清单 1:


 <form action="http://hub.local/tutorial.php" method="get">

      Name: <input type="text" name="name">

      Color: <input type="text" name="color">

      Plural Noun: <input type="text" name="pluralNoun">

      <input type="submit">

 </form>


<?php 

$name = $GET_['name'];

$color = $GET_['color'];

$pluralNoun = $GET_['pluralNoun'];

echo "Hello $name, you like $color $pluralNoun.";

 ?>

它对讲师非常有用,但不会为我运行并且一直给我一个索引错误。


我对编程并不陌生,所以这是有道理的,因为我意识到它试图找到一个尚未设置的变量。


经过一番研究,我了解了isset()检查它是否为空的方法。


为了让它在我这边没有错误地运行,我使用了isset():


清单 2:


<form action="http://hub.local/tutorial.php" method="get">

      Name: <input type="text" name="name">

      Colour: <input type="text" name="color">

      Plural Noun: <input type="text" name="pluralNoun">

    <input type="submit">

</form>


<?php


if(isset($_GET['name'])){

  $name = $_GET['name'];

  $color = $_GET['color'];

  $pluralNoun = $_GET['pluralNoun'];

  echo "Hello $name, you like $color $pluralNoun";

}

?>


我想我明白了...


我的问题是:


我在这里缺少什么概念?或者,isset()每次您要访问可选变量时,PHP 是否都充满了?(我习惯了 Swift)处理这些变量的正确方法是什么?为什么清单 1 适用于教师设置而不是我的?


提前感谢您的任何见解!随意在菜鸟煤上烤我。


慕无忌1623718
浏览 63回答 1
1回答

POPMUISE

PHP 有着悠久的历史,在早期(也许今天仍然如此),有些人认为丢失/未设置变量不是错误,所以这些只是被标记为警告/通知。在您的 PHP 设置中,您可以知道出现或隐藏了哪些错误/警告/通知。在这种特定情况下,尝试访问不存在的数组键将引发通知。然而,较新版本的 PHP(我认为是 7.4,但也许是 7.3)有运算符来解决这个问题。例如,空合并运算符将为isset()您执行检查。$name = $_GET['name'] ?? 'Please enter your name';至于你是否每次都必须这样做,我想这取决于。您可以如上所述抑制它们,但是:some_email_function($from)如果$from没有设置,它应该只是默默地失败而不给任何人发电子邮件还是应该给你一个警告。这真的取决于你的个人喜好。对我来说,我总是设置要显示的警告和通知,因为这些小东西可以隐藏超级恼人的错误,尤其是可变拼写错误。
打开App,查看更多内容
随时随地看视频慕课网APP