我是否需要在php中的函数中提供真假返回,或者只是一个真正的回归?
如果我有这样的小功能:
<?php
$name = $_POST['name'];
function nameCheck($name)
{
if (strlen($name)>1 && strlen($name)<40)
{
return true;
}
else
{
return false; // do I need this?
}
}
然后我在这里检查它是否是假的:
if (isset($_POST['submit']))
{
if (!nameCheck($name))
{
echo '<script type="text/javascript"> alert("Fail name!")</script>';
return false;
}
}
?>
if (!nameCheck($name))
我不需要在原始函数中返回一个真值,好像它在这里没有返回true,它会返回false吗?
答案 0 :(得分:7)
你实际上没有需要来返回两者,因为如果null
转换为布尔值,php会将false
解释为if
,就像你一样在这里干嘛
那就是说,在这种情况下,你可以明确地说明它并返回两者。如果你这样做,你可以编写更多更清洁的功能:
function nameCheck($name)
{
return strlen($name) > 1 && strlen($name) < 40;
}
strlen($name) > 1 && strlen($name) < 40
的值为boolean
,即:答案为 true 或 false 。所以,我们只需要简单地返回这个计算的输出......
让我们思考一下机器将如何处理这段代码:
if(2>1) return true;
它首先要做的是计算括号:
if(true) return true;
考虑到这一点,我们可以简单地说:
return 2>1;
在上面的函数中使用了相同的逻辑
答案 1 :(得分:3)
PHP不是typed language
,因此它不会强制您返回值(例如,当参数满足条件时,您只能返回true
。
但是,如评论中所述,这是一个坏主意,因为当您尝试访问return
值(或不需要的值)时它将为null
认为它是typed language
:您的函数会返回boolean
,并且您将被迫返回true
或false
,具体取决于条件。所以你的第一个例子很好,你应该保持这种语法;您可以通过默认返回false
使其变亮,并仅使用条件返回true
function nameCheck( $name ) {
if( strlen( $name ) > 1 && strlen( $name ) < 40 ) {
return true;
}
return false;
}
编辑:cronoklee's answer也是重构代码的好方法