显示零

时间:2015-04-27 14:19:08

标签: php output zero

我正在使用str_replace填充模板,其中一些值为数字。 当一个数字为0(零)时,PHP认为它是假的并且什么都不写。

我尝试了在SO和网络上找到的每个解决方案:

  • INTVAL($ myZeroVar)
  • floatval($ myZeroVar)
  • strval($ myZeroVar)
  • (字符串)$ myZeroVar
  • ''。$ myZeroVar
  • 使用number_format,sprintf,str_pad ...
  • 进行随机测试

这些都没有工作。

显示它的唯一方法是将$ myZeroVar与空格($myZeroVar.' ')连接起来。 但是,如果我不想要这个空间呢?

我做错了吗?在PHP配置中可能吗?

不要告诉我你每次输出一个号码时都会连接一个空格?

由于

编辑:

这是我令人敬畏的模板系统(开玩笑):

$template = 'Some text with a {value}';
$data = 0;
$template = str_replace('{value}', $data, $template);

结果是:“有些文字带有”

修改:已解决

确定。就在我跑到我的桌子底下之前,我必须告诉你问题来自于我真棒模板系统之前的一条线:

if(!empty($data)

所以现在我用$val === '' || $val === null

替换了它

一切都很好...... 我喜欢浪费时间来解决由我引起的问题。

看起来我永远不会在这里发表有用的帖子!

谢谢大家。

请勿过多投票,这篇文章对新手来说有点用处: 总是检查3次!

5 个答案:

答案 0 :(得分:0)

尝试这样的事情

<?php
    echo "{$myZeroVar}";
?>

它为我工作&#34; {$ var}&#34;该格式已停止php将其读作true / false和字符串

答案 1 :(得分:0)

如何运行测试以查看值是否为零。然后将其修改为字符串零而不是?

$template = 'Some text with a {value}';
$data = 0;
if (!$data) {
  $data = "0";
}
$template = str_replace('{value}', $data, $template);

答案 2 :(得分:0)

为什么不使用sprintf而不是str_replace?

这样您就可以在字符串模板中设置数据类型。

$template = 'Some text with a %d';
$data = 0;
$result = sprintf($template, $data);

答案 3 :(得分:0)

class Application < ActiveRecord::Base belongs_to :job belongs_to :user scope :new, where(:status => 'New') scope :reviewed, where(:status => 'Profile Reviewed') scope :offered, where(:status => 'Offer Given') scope :accepted, where(:status => 'Offer Accepted') scope :hired, where(:status => 'Hired') scope :declined, where(:status => 'Decline') 命令及其朋友按照您的意愿处理格式。

printf

如果您想从软件中将模板转换为printf格式,那也是一种选择。

$template = "Some text with a %.0f\n";
$data = 0;
$output = sprintf($template, $data);

请注意,我使用的是$template = "Some text with a {value}\n"; $data = 0; $template_fmt = str_replace('{value}', '%.0f', $template); $output = sprintf($template_fmt, $data); 而不是%.0f,因为它为您提供了支持更复杂的浮点数的简单进程。要么应该这样做。

答案 4 :(得分:0)

我的变量未显示,不是因为一些错误或配置错误,而是因为仅当变量不是empty()时才填充模板。

空函数返回true为0。

!empty($var)替换($var !== '' && $var !== null)解决了这个问题。