我的任务是能够以某个人的生日为参数,并以此特定的方式返回那里的年龄以及是否有生日
getBirthDate('09 / 06 / 1992' ); //返回数组('age'=> 21,'birthday'=> true);
我无法使布尔值正常工作,因为即使if语句为true,它总是返回else语句。
<?php
function getBirthDate($birthdate)
{
$today =getdate();
$day =array($today["mon"], $today["mday"]);
$newBday = str_replace("/",",",$birthdate);
$birthDate = explode(",",$newBday);
$monthDay = array($birthDate["0"],$birthDate[1]);
$compared = array_diff($day,$monthDay);
if ($compared == ""){
$age = ($today["year"]-$birthDate["2"]);
$dateArray = array( "age" => "$age", "birthday" => "True");
return print_r ($dateArray);
return True;
}
else{
if ($monthDay[0] < $day[0]){
$age = (($today["year"]-$birthDate["2"])-1);
$dateArray = array( "age" => "$age", "birthday" => "False");
return print_r($dataArray);
return True;
}
else{
$age = (($today["year"]-$birthDate["2"]));
$dateArray = array( "age" => "$age", "birthday" => "False");
return print_r($dateArray);
return True;
}
}
}
getBirthDate("9/6/1993")
?>
答案 0 :(得分:0)
对于开始,不要使用True和False,或者使用TRUE和FALSE。
其次,您的return True
行永远不会看到光明,因为您正在返回它之前的值。返回字面意思是在返回语句处停止脚本。
return True;
应该是
return true;
另外,在检查布尔值时总是使用=== operator not =。任何非零值都可以等于true。
$true = true;
if ($true === true) {
echo 'Yes! I got a true boolean result';
}