function myFunction(bool $value = null) : bool {

}
$value = myFunction();
$value = myFunction(true);
echo $value;

Fatal error: Uncaught TypeError: myFunction(): Return value must be of type bool, none returned in /var/www/html/php8/ch5/myValue.php:42 Stack trace: #0 /var/www/html/php8/ch5/myValue.php(43): myFunction() #1 {main} thrown in /var/www/html/php8/ch5/myValue.php on line 42

    sneakyimp

    function myFunction(bool $value = null) : bool {
        return $value;
    }
    $value = myFunction(false);
    echo $value;
    
    $value = myFunction(true);
    echo $value;
    ?>

    false do not return 0, only true return 1

    bertrc false do not return 0, only true return 1

    Instead of just echo-ing the result, use var_dump($value), instead. (echo will type-cast the Boolean value to a string value, which in this case casts true to "1" and false to "".)

    $ php -a
    Interactive shell
    
    php > $foo = true;
    php > $bar = false;
    php > echo $foo;
    1
    php > var_dump($foo);
    bool(true)
    php > echo $bar;
    php > var_dump($bar);
    bool(false))
    
    Write a Reply...