空/文本值被视为“0”

时间:2016-01-20 15:24:26

标签: php function

我希望我的功能可以执行以下操作:

如果价格为0,则返回free条消息。

如果价格为正,请显示价格。

如果价格值不可用 - 例如:如果价格的数据库单元格为空,或者值为unknown,则返回unavailable消息。

所以我带了这段代码:

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:

<?= get_rate( $price) ?>

但对于价值观:

$price="unknown";或如果$price为空,我仍然会收到“免费”消息。

1 个答案:

答案 0 :(得分:2)

现在你有两个解决方案:

解决方案1:

else if ($foo === 0) // use === for checking value and datatype

解决方案2:

else if ($foo == 0 && $foo != null) // adding != null

将值""null视为0,如果您还使用===检查数据类型,则此问题将解决,否则请使用第二个解决方案。

在你发表评论之后,分享一个基本的例子,你会得到这个想法:

$foo = 'bla';
var_dump($foo);

它会给你string(3) "bla"