【发布时间】:2014-06-28 11:44:55
【问题描述】:
我是 PHP 新手,我一直在学习一个教程,在该教程中我正在使用 PHP 中的 OOP 构建用户注册系统。我已经很好地消化了代码并且学得很快,但遇到了一个小问题(但令人沮丧)。
如果 echo 命令跟在 require_once 命令之后,我的 Web 浏览器不希望显示回显值,除非我在要回显的值之前添加额外的 echo '<br'>。看起来是这样的:
<?php
require_once 'core/init.php';
echo Config::get('mysql/host');
上面的这段代码不会在浏览器中回显最后一行。
<?php
require_once 'core/init.php';
echo '<br>';
echo Config::get('mysql/host');
上面的代码会在浏览器中回显最后一行。
为什么要加echo '<br>'才能显示?
非常感谢您的建议。
最好, 卢卡斯
core/init.php 中的代码如下:
<?php
session_start();
$GLOBALS['config'] = array(
'mysql' => array(
'host' => '127.0.0.1',
'username' => 'root',
'password' => '',
'db' => 'lr'
),
'remember' => array(
'cookie_name' => 'hash',
'cookie_expiry' => 604800
),
'session' => array(
'session_name' => 'user'
)
);
spl_autoload_register(function ($class) {
require_once 'classes/' .$class . '.php';
});
require_once '/../functions/sanitize.php';
echo $config['mysql']['host'];
【问题讨论】:
-
你使用输出缓冲吗?
core/init.php有什么代码? -
Marcin,我已经在帖子中添加了init.php代码。
-
提示:1) 确保您已将 PHP 配置为显示所有可能的错误消息 2) 使用浏览器的“查看源代码”菜单检查脚本的 raw 输出。
-
你的代码还有比这更多的吗?例如这真的被包含在带有 html 标记的页面中吗?我的猜测是有,也许它真的在那里,但因为你的 html/css 标记的其余部分而“隐藏”了,
br是块级标签,它把它推到你可以看到的地方。你甚至从你的core/init.php文件中看到echo $config['mysql']['host']吗? -
include 和 require_once 是函数,对吧?所以它们的值不应该像 include('test.php'); 这样放在括号中吗? ?还是我错过了什么?
标签: php