PHP - 浏览器在“require_once”命令后不显示echo'ed值,为什么?

时间:2014-06-28 11:44:56

标签: php

我是PHP新手,我一直在学习一个教程,我在PHP中使用OOP构建用户注册系统。我已经很好地消化了代码并快速学习,但遇到了一个小问题(但令人沮丧)。

如果echo命令遵循require_once命令,我的Web浏览器不想显示echo值,除非我在我想要回显的值之前添加额外的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'];

1 个答案:

答案 0 :(得分:0)

我已经测试了代码,一切正常。顺便说一句,您应该考虑不在代码中使用$GLOBALS

完整的工作代码:

<强>的index.php

<?php
require_once 'core/init.php';
echo Config::get('mysql/host');

<强>芯/的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'];

<强>功能/ sanitize.php

<?php 

function escape ($string) 
{ 
    return htmlentities($string, END_QUOTES, 'UTF-8'); 
}

<强>类/ CONFIG.PHP

<?php

class Config {

    static function get($what) {
        $what  = explode ('/', $what);
        echo $GLOBALS['config'][$what[0]][$what[1]];           
    }
}

在浏览器中启动index.php文件的结果是:

  

127.0.0.1127.0.0.1

正如预期的那样(127.0.0.1显示2次,没有空格)