Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 布尔值不能正确返回_Php_Arrays_If Statement - Fatal编程技术网

Php 布尔值不能正确返回

Php 布尔值不能正确返回,php,arrays,if-statement,Php,Arrays,If Statement,我的任务是能够把某人的生日作为一个论据,并以这种特定的方式返回那个人的年龄和是否是那个人的生日 获取出生日期('09/06/1992');//返回数组('age'=>21,'birth'=>true) 我无法让布尔值正常工作,因为它总是返回else语句,即使if语句为true <?php function getBirthDate($birthdate) { $today =getdate(); $day =array($today["mon"], $today["mday"]); $n

我的任务是能够把某人的生日作为一个论据,并以这种特定的方式返回那个人的年龄和是否是那个人的生日

获取出生日期('09/06/1992');//返回数组('age'=>21,'birth'=>true)

我无法让布尔值正常工作,因为它总是返回else语句,即使if语句为true

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

对于开始,不要使用True和False或True和False

其次,您的
return True
行永远看不到曙光,因为您在它前面返回一个值。Return会在Return语句处停止脚本

return True;
应该是

return true;
此外,在检查布尔值时,始终使用===运算符not==。任何非零值都可以等于true

$true = true;

if ($true === true) {
    echo 'Yes! I got a true boolean result';
}

你为什么要一个接一个地使用double
return
s?!当执行
返回
代码时,php将停止执行函数的其余部分。请看,您得到的是否决票,因为您没有解释需要帮助的内容。不,您得到的是否决票,因为该问题既不是问题,也不是可理解的语句。抱歉,我没有意识到我将其打断。我编辑它是为了解释更多。我按照你告诉我的做了,if语句仍然没有正确处理