在 PHP 中检查闰年条件不起作用

我试图弄清楚如何应用条件来检查一年是否是闰年。但是当我添加跳跃功能时,它就不起作用了。


知道如何让它发挥作用吗?


这是我的代码:


    <?php

$name = "";

$character = "";

$email = "";

$birth_year = 1969;

$validation_error = "";

$existing_users = ["admin", "guest"];

$options = ["options" => ["min_range" => 1920, "max_range" => date("Y")]];

function leap($year) {

    date('L', strtotime("$year-01-01")) ? TRUE : FALSE;

}


if ($_SERVER["REQUEST_METHOD"] == "POST") {

  $raw_name = trim(htmlspecialchars($_POST["name"]));

  if (in_Array($raw_name,$existing_users)){

    $validation_error .= "This name is taken. <br>";

  } else {

      $name = $raw_name;

    }

  $raw_character = $_POST["character"];

  

  if (in_array($raw_character,["wizard", "mage", "orc"])) {

    

    $character = $raw_character;

} else {

    $validation_error .= "You must pick a wizard, mage, or orc. <br>";

  }

  $raw_email = $_POST["email"];

  if (filter_var($raw_email,FILTER_VALIDATE_EMAIL)) {

    $email = $raw_email;

  } else {

    $validation_error .= "Invalid email. <br>";

  }

  $raw_birth_year = $_POST["birth_year"];

  if (filter_var($raw_birth_year,FILTER_VALIDATE_INT,$options)){

$birth_year = $raw_birth_year;

if ($raw_character === "mage") {

    if (!leap($birth_year)){

    $validation_error .= "Mages have to be born on leap years. <br>";

  }}

} else {

  $validation_error .= "That can't be your birth year. <br>";

}


}



?>

<h1>Create your profile</h1>

<form method="post" action="">

<p>

Select a name: <input type="text" name="name" value="<?php echo $name;?>" >

</p>

<p>

Select a character:

  <input type="radio" name="character" value="wizard" <?php echo ($character=='wizard')?'checked':'' ?>> Wizard

  <input type="radio" name="character" value="mage" <?php echo ($character=='mage')?'checked':'' ?>> Mage

  <input type="radio" name="character" value="orc" <?php echo ($character=='orc')?'checked':'' ?>> Orc

</p>

<p>

Enter an email:

<input type="text" name="email" value="<?php echo $email;?>" >

</p>

<p>


FFIVE
浏览 93回答 1
1回答

慕婉清6462132

我认为你的问题是该函数没有返回任何内容,请尝试:function&nbsp;leap($year)&nbsp;{&nbsp; &nbsp;&nbsp;&nbsp;return&nbsp;date('L',&nbsp;strtotime("$year-01-01"))&nbsp;?&nbsp;TRUE&nbsp;:&nbsp;FALSE; }
打开App,查看更多内容
随时随地看视频慕课网APP