php中这两个return语句之间的区别

时间:2016-05-09 10:52:31

标签: php conceptual

我们想知道在php中返回>>> regex = re.compile(r'(\d){3,5}') >>> regex.findall('234234234') ['3', '4'] >>> regex.findall('234 345 456') ['4', '5', '6'] >>> >>> regex.search('22343') <_sre.SRE_Match object; span=(0, 5), match='22343'> >>> empty null的最佳方式是什么,我们经常使用此

no result

另一种方法是

function doThis($a){
   if($a == 0){
       return '';
   }else{
       // complex mysql 
       return $result;
}

现在我们像这样比较

function doThis($a){
   if($a == 0){
       return null;
   }else{
       // complex mysql 
       return $result;
}

if(doThis(5)){
    // do something
}

我想知道这样做的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

doThis附近的if($a = 0){功能存在问题。

==用于比较。

=用于指定值。

答案 1 :(得分:0)

Null表示“没有”。 var尚未初始化。

False表示“在布尔上下文中不为真”。用于明确表明您正在处理逻辑问题。

0是一个int。与上面的其余部分无关,用于数学。

if($a = 0)这将分配值而不是比较 你需要尝试if($a == 0)

答案 2 :(得分:0)

谈到没有背景的“最佳方式”毫无意义。通常你应该编写代码来实现这些:

“empty”返回值应该对使用它的代码有意义

常见的情况是,对于给定的非空值,选择空值。

例如,如果您在数据库中搜索特定实体。如果成功,您的代码将返回对象,因此在查找失败的情况下显然不应为空字符串。通常的做法是在这种情况下返回null或NullObject

如果您的代码在成功的情况下返回多个对象,那么您可能希望在发生故障时返回空数组/迭代器。

如果你的代码操作字符串,你通常不希望在某些时候返回null。

最明显的情况:如果您在成功的情况下返回true,则在发生故障时不应返回空字符串。

因此,使用常识规则和一些逻辑来确定正确的返回值

代码应该是可读且有效的

还取决于上下文:如果函数返回null''false,如果你的情况有所不同,你应该使用额外的返回值检查(介意使用好名字)检查方法)。如果你的代码不关心里面除非它是一个对象,那么if($something)就足够了。

这些规则通常适用于任何编程语言,不适用于PHP。

相关问题