我刚看到这个
// Check to see if the request is a XHR call
if (request::is_ajax())
{
// Send the 403 header
header('HTTP/1.1 403 Forbidden');
return;
}
我以前没见过简单的return
,我从未使用它。我唯一的猜测是它只是与任何return 'something'
一样(停止函数),除非实际上没有返回结果。
此外,在这种情况下会发生什么?
function text($var)
{
if ( ! $var) {
return;
}
do_something();
}
$var = text('');
我知道这是一个糟糕的例子(它可能应该返回false或抛出异常),但它会是一个错误,还是$var
只是为空或空白?
答案 0 :(得分:10)
function text($var)
{
if ( ! $var) {
return;
}
do_something();
}
$var = text('');
echo gettype($var);
echo is_bool($var) ? "true" : "false";
echo is_string($var) ? "true" : "false";
echo is_null($var) ? "true" : "false";
返回:
NULL 假 假 真
答案 1 :(得分:8)
PHP是动态类型的,因此返回任何值都不等于以任何类型返回空值。
答案 2 :(得分:4)
没有值的返回值返回null。
手册中的更多信息:
如果在函数内调用,则return()语句立即结束当前函数的执行,并返回其参数作为函数调用的值。 return()也将结束eval()语句或脚本文件的执行。
如果从全局范围调用,则结束当前脚本文件的执行。如果当前脚本文件是include()ed或require()ed,则控制权将传递回调用文件。此外,如果当前脚本文件是include()ed,则返回给予return()的值将作为include()调用的值返回。如果从主脚本文件中调用return(),则脚本执行结束。如果当前脚本文件由php.ini中的auto_prepend_file或auto_append_file配置选项命名,则该脚本文件的执行结束。
答案 3 :(得分:2)
简短回答。它只是结束了函数,它就像一个没有return语句的函数。什么都没有返回,功能就退出了。
在你的第二个例子中,$ var will = nothing。
为什么不执行它并看到?
答案 4 :(得分:2)
是,“return;”或return();在函数中停止运行该函数(如果返回语句不在函数中,则为文件)(如果代码被执行)并且在技术上返回空值。
您的第一个示例将输出'HTTP / 1.1 403 Forbidden'标头,然后在request :: is_ajax()等于true时结束该函数。
在您的代码示例中:
function text($var)
{
if ( ! $var) {
return;
}
do_something();
}
$var = text('');
您可以拥有以下内容:
我怀疑您可能想要将if语句更改为:
if (!is_string($var)) {
如果您只想将do_something()转换为字符串或
if (is_null($var)) {
如果你只想设置do_something()到$ var。您可能还想将函数声明更改为: 函数文本($ var == NULL){ 因此,如果您在没有参数的情况下调用文本,则$ var会自动设置为null。