Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将空/文本值视为“0”;0“;_Php_Function - Fatal编程技术网

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的这个手动链接(类型比较)