仅当我使用var_dump或echo而不使用调试器断点时,变量才会被设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了仅当我使用var_dump或echo而不使用调试器断点时,变量才会被设置相关的知识,希望对你有一定的参考价值。

所以我从我的php代码中得到了这种奇怪的行为。

public function index() {
  $interval = (int)('60');
  // echo $interval;
  // If I uncomment and put a breakpoint above, 
  // I can see the variable $interval value in my debugger.
  // But without an 'echo' or 'var_dump' statement, 
  // value is not getting set in $interval.
  die;
}

当我使用'echo'或'var_dump'将$ interval变量写入输出流时,$ interval变量正确显示并设置。但是如果我在间隔初始化之后使用调试器中断执行而不是写入输出流变量没有设置。

以下是调试器截图。

这有效!

This works!

这不!

This does not!

知道为什么这种奇怪的行为?如果我在一个单独的php文件中运行它没有问题。问题仅存在于Codeigniter实例中。

PHP版本:7.2.8 Codeigniter:3.1.5

答案

<?php
function writeMsg() {
    echo "Hello world!";
}

writeMsg(); // call the function
?>

以上是关于仅当我使用var_dump或echo而不使用调试器断点时,变量才会被设置的主要内容,如果未能解决你的问题,请参考以下文章

如何正确使用 print_r 或 var_dump?

Phpstorm+Xdebug断点调试PHP

输出echo print print_r() var_dump()的区别

echo var_dump print_r print的区别

php中echo(),print(),print_r(),var_dump()间的区别

Xdebug的安装配置和使用