Php 将空/文本值视为“0”;0“;
我希望我的函数执行以下操作: 如果价格为Php 将空/文本值视为“0”;0“;,php,function,Php,Function,我希望我的函数执行以下操作: 如果价格为0,则返回免费消息 如果价格为正,则显示价格 如果价格值不可用-例如:如果价格的数据库单元格为空,或具有类似未知的值,则返回不可用消息 所以我带来了这个代码: function get_rate($foo,$bar) { if ($bar== "something") { //$test= "testing"; } elseif ($foo== 0) { $message = 'Free'; } elseif ($foo&g
0
,则返回免费
消息
如果价格为正,则显示价格
如果价格值不可用-例如:如果价格的数据库单元格为空,或具有类似未知
的值,则返回不可用
消息
所以我带来了这个代码:
function get_rate($foo,$bar) {
if ($bar== "something") {
//$test= "testing";
} elseif ($foo== 0) {
$message = 'Free';
} elseif ($foo> 0) {
$message = '$'.$foo;
} else {
$message = 'Unavailable';
}
return $message;
}
HTML:
但对于价值观:
$price=“未知”
或者如果$price
为空,我仍然会收到“免费”消息。现在您有两种解决方案:
解决方案1:
else if ($foo === 0) // use === for checking value and datatype
else if ($foo == 0 && $foo != null) // adding != null
解决方案2:
else if ($foo === 0) // use === for checking value and datatype
else if ($foo == 0 && $foo != null) // adding != null
值”
或null
视为0,如果您还使用==
检查数据类型,则此问题将解决,否则请使用第二种解决方案
在您发表评论后,分享一个基本示例,您将了解:
$foo = 'bla';
var_dump($foo);
它将给你
字符串(3)“bla”
你在这里混合变量。输入参数是$foo
和$bar
,但您正在检查$bar
和$a
。请修正你的变量。已经修正了,是打字错误,谢谢。@rockyraw你什么也没修正。为什么你甚至有两个参数?@Daan我用$foo
替换了$a
,我的原始代码检查了两个参数,为了这个问题,我从问题中删除了第二个参数。好的可能重复,为什么像$price=“bla”
这样的文本也被视为0,尽管如此?@rockyraw这感觉好像解释得太多了,但只要看看==和==。话虽如此,我想你知道该怎么做……所以无论我做什么,$price=“bla”
,$price==“bla”
,$price==“bla”
,如果我使用($foo==0)
和$price=“0”,所有这些都被视为0
它将返回不可用
而不是免费
。为什么?我注意到你的#1解决方案只能在=0
而不是=“0”
@rockyraw:我的朋友,我建议你检查一下PHP的这个手动链接(类型比较)