我们想知道在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
}
我想知道这样做的最佳方法是什么?
答案 0 :(得分:0)
doThis
附近的if($a = 0){
功能存在问题。
==
用于比较。
=
用于指定值。
答案 1 :(得分:0)
Null
表示“没有”。 var尚未初始化。
False表示“在布尔上下文中不为真”。用于明确表明您正在处理逻辑问题。
0是一个int。与上面的其余部分无关,用于数学。
if($a = 0)
这将分配值而不是比较
你需要尝试if($a == 0)
答案 2 :(得分:0)
谈到没有背景的“最佳方式”毫无意义。通常你应该编写代码来实现这些:
常见的情况是,对于给定的非空值,选择空值。
例如,如果您在数据库中搜索特定实体。如果成功,您的代码将返回对象,因此在查找失败的情况下显然不应为空字符串。通常的做法是在这种情况下返回null或NullObject。
如果您的代码在成功的情况下返回多个对象,那么您可能希望在发生故障时返回空数组/迭代器。
如果你的代码操作字符串,你通常不希望在某些时候返回null。
最明显的情况:如果您在成功的情况下返回true
,则在发生故障时不应返回空字符串。
因此,使用常识规则和一些逻辑来确定正确的返回值。
还取决于上下文:如果函数返回null
,''
或false
,如果你的情况有所不同,你应该使用额外的返回值检查(介意使用好名字)检查方法)。如果你的代码不关心里面除非它是一个对象,那么if($something)
就足够了。
这些规则通常适用于任何编程语言,不适用于PHP。