-6

私の仕事は、誰かの誕生日を引数として返し、その年齢と、その誕生日があるかどうかをこの特定の方法で返すことができるようにすることです

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")
?>
4

1 に答える 1

0

開始には、True と False、または TRUE と FALSE を使用しないでください。

第二に、return Trueその直前に値を返しているため、行が日の目を見ることはありません。Return は文字通り、return ステートメントの時点でスクリプトを停止します。

return True;

する必要があります

return true;

また、ブール値をチェックするときは、常に == ではなく === 演算子を使用してください。ゼロ以外の値はすべて true と見なすことができます。

$true = true;

if ($true === true) {
    echo 'Yes! I got a true boolean result';
}
于 2013-09-06T23:02:15.287 に答える