【问题标题】:Php variable not saving its value booleanPHP 变量不保存其值 boolean
【发布时间】:2016-05-30 13:49:41
【问题描述】:

我在这里用 php 语句苦苦挣扎。我似乎无法存储我想稍后在 php 中引用的 true 变量。

<?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
 <?php $isFound=true;?> 
<?php endwhile; else: ?>
<?php $isFound=false;?> 
<p><?php 
echo $isFound;

_e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

谁能告诉我我做错了什么?当我尝试回显它时,即使 sorry no posts matched 显示正常,它也没有显示值?

【问题讨论】:

  • echo false;,基本上。 echo 需要一个字符串。 false 转换为字符串"",即什么都没有。试试var_export($isFound);
  • 最好将 PHP 逻辑与 HTML 输出代码分开。这样你就可以防止像这样的不可读的错误代码。
  • @NiettheDarkAbsol 但我想稍后引用该变量,看来我的代码无法引用它?我如何使它成为正确的布尔值
  • 使用 var_dump()print_r() 代替 echo 进行调试。
  • @david 起初我以为这只是一个错字,但既然你再次提到它:它是boolean,而不是bollean

标签: php wordpress


【解决方案1】:

您不应该使用 echo 来检查一个值是 true 还是 false,因为它们是布尔值并且布尔值不能被回显。

如果您真的想使用 echo,可以执行以下操作:

if ($value === true) {
    echo "true";
} else {
    echo "False";
} 

否则,我建议使用var_dump()print_r()

var_dump($isFound);

print_r($isFound);

提示:var_dump()print_r()&lt;pre /&gt; 标记配合使用效果很好。

echo "<pre>";
var_dump($isFound);
echo "</pre>";

上面会给你一个更清晰的转储(美化)。

【讨论】:

  • xdebug 启用后还将美化var_dump 的输出,并允许您在运行时调试应用程序以使用断点验证variable data
【解决方案2】:

PHP 不打印或回显错误语句。如果您想查看应该使用的值

var_dump($isFound);

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多