【问题标题】:Introduction to phpphp简介
【发布时间】:2025-11-28 19:00:01
【问题描述】:

我正在学习 php 基础知识,但在正确进行此练习时遇到了困难 请任何身体帮助?我提前感谢您的帮助 丹尼尔。

请注意,我只能使用 if...elseif...else-statement

进行练习

编写一个 PHP 脚本,根据表单中输入的信息打印如下语句。 男性 0-55 岁:“你是一个壮年!” 55岁以上的男性:“你是个聪明人!” 0-55岁女性:“你是最美的少女!” 55 岁以上的女性:“你看起来很年轻!”。

发送信息的表单如下所示:

<form action="printinfo.php" method="get">
Choose your gender: <input type="radio" value="male" name="gender" checked>male
<input type="radio" value="female" name="gender">female
<br>
Write your age:
<select name="age">
<option value=1 selected>0-55</option>   
<option value=2>Over 55</option>
</select>
<br>
<input type="submit" value="Send">               
</form>

示例输出

You’re a man in his prime!

我的脚本是:

<?php
$male=$_GET["male"];
$female=$_GET["female"];
if($male > 55){
echo "You’re a man in his prime!";

}else if ($male <= 55){

echo "You are a wise man!";

}else if ($female <= 55){

echo "You are a damsel at her most beautiful!";

}else if ($female > 55){

echo "You look young for your age!";

?> 

【问题讨论】:

  • 陈述您的问题、给出警告、错误消息等会非常好...
  • 另外你没有关闭你的大括号{你每次都启动它们但从不关闭它们}。
  • $male=$_GET["male"]; $female=$_GET["female"];.... 不,gender 是您的下拉列表的名称malefemale...$gender=$_GET['gender']
  • 而且您根本没有检索age,而是以某种方式期望它将存储在$male$female.....想想你实际上在做什么

标签: php


【解决方案1】:

您以错误的方式访问全局 GET 变量:

$gender = $_GET['gender'];
$age = $_GET['age'];

if($gender == 'male' && $age == '0-55')
    echo "You’re a man in his prime!";

现在为您的其余代码调整它。

【讨论】:

    【解决方案2】:
    <?php
        $gender = $_GET["gender"];
        $age=$_GET["age"];
        if($gender == 'male' && $age == 2)
        {
        echo "You’re a man in his prime!";
    
        }
        else if ($gender == 'male' && $age == 1)
        {
    
        echo "You are a wise man!";
    
        }
        else if ($gender == 'female' && $age == 1)
        {
    
        echo "You are a damsel at her most beautiful!";
    
        }
        else if ($gender  == 'female' && $age == 2)
        {
    
        echo "You look young for your age!";
        }
    ?> 
    

    HTML:

    <html>
    <form action="printinfo.php" method="get">
    Choose your gender: <input type="radio" value="male" name="gender" checked>male
    <input type="radio" value="female" name="gender">female
    <br>
    Write your age:
    <select name="age">
    <option value=1 selected>0-55</option>   
    <option value=2>Over 55</option>
    </select>
    <br>
    <input type="submit" value="Send">               
    </form>
    </html>
    

    您忘记了使用年龄单选按钮.. 而且您的 if else 语句不正确使用这样的。 如您所见,在您的 If 语句中,您没有使用此“人”的年龄,代码永远不会起作用,因为“55”与您的选择之间没有联系。你的 $male 和 $female
    很奇怪,它们没有价值..造成这种情况的原因,

    <input type="radio" value="male" name="gender"
    

    你需要使用 'name="gender"' 而不是 'value="male/female"'

    【讨论】:

      【解决方案3】:
      <?php
          if(isset($_GET['gender'])){
          $gender=$_GET['gender'];
          }
      
          if($gender = 'male' && $_GET['age'] > 55){
          echo "You’re a man in his prime!";
      
          }else if ($gender = 'male' && $_GET['age'] <= 55){
      
          echo "You are a wise man!";
      
          }else if ($gender = 'female' && $_GET['age'] <= 55){
      
          echo "You are a damsel at her most beautiful!";
      
          }else if ($gender = 'female' && $_GET['age'] > 55){
          echo "You look young for your age!";
          }
          ?> 
      

      【讨论】:

      • 您好,感谢您的帮助,当我运行您在上面编写的程序时,程序告诉我输出不同。你的程序产生了以下输出:你是一个正值壮年的人!应该生成以下输出: 你是个聪明人!白色区域表示程序的正确输出。代表回车 在输出的比较中,你的程序的输出必须与示例输出完全相同。
      【解决方案4】:

      我希望你能对这个任务的分析有所帮助 (也为我笨拙的英语道歉)。

      首先,您要在他的 PHP 脚本中获取的变量具有您为“名称”标签和“输入”指定的名称

      现在在取值的时候可以先检查变量if (isset($_GET['gender']))是否存在 然后使用应用指令switch

      执行所有操作

      这里是示例代码:

          <?php
      
      //new variable for age
      $age_human = $_GET['age'];
      
      // for example
      //if (!isset($age_human, $_GET['gender'])) die "Empty value";
      
      // male or female
      switch($_GET['gender'])
      {
          case "male": echo "male ";
                   if($age_human > 55)
                   {
                  echo "You’re a man in his prime!";
                   }
                           else if ($age_human <= 55)
                   {
                  echo "You are a wise man!";
                           }
                           else if ($age_human <= 55)
                           {
                  echo "You are a damsel at her most beautiful!";
                   }
                           else if($age_human > 55)
                           {
                              echo "You look young for your age!";
                           }
                       break;
      
          case "female": echo "female ";
                   if($age_human > 55)
                   {
                  echo "You’re a man in his prime!";
                   }
                           else if ($age_human <= 55)
                   {
                  echo "You are a wise man!";
                           }
                           else if ($age_human <= 55)
                           {
                  echo "You are a damsel at her most beautiful!";
                   }
                           else if($age_human > 55)
                           {
                              echo "You look young for your age!";
                           }
                           break;
      }
      
      ?> 
      

      【讨论】:

      • 他是编程初学者,所以我认为他不会理解这种代码。这是正确的(未经测试),但对他来说太难了。
      • 但是指令switch应该是他训练的下一步,相信久了他不会写else if ... else if跨度>
      • 嗨,谢谢你们,我终于弄明白了。我这样做是因为你们,你们的建议对我很有帮助。再次感谢大家!