奇怪的PHP问题

奇怪的PHP问题,php,function,Php,Function,我的函数看起来是这样的 protected function make_js_link($list, $folder, $parentdir = "js") { $links = array(); $list = explode(',', $list); foreach ($list as $name) { $dir = $parentdir . "/"; if (is_string($folde

我的函数看起来是这样的

protected function make_js_link($list, $folder, $parentdir = "js") {
        $links = array();

        $list = explode(',', $list);

        foreach ($list as $name) {
            $dir = $parentdir . "/";
            if (is_string($folder))
                echo $folder . "/";
            $links[] = '<script src="' . $dir . trim($name) . '.js"></script>' . "\n";
        }

        echo implode(" ", $links);
    }
            $this->make_js_link('ckeditor', 0, 'incl/editor');
            $this->make_js_link('jquery', 'adapters', 'incl/editor');
如果文件位于parentdir/other_dir中,则这样调用

protected function make_js_link($list, $folder, $parentdir = "js") {
        $links = array();

        $list = explode(',', $list);

        foreach ($list as $name) {
            $dir = $parentdir . "/";
            if (is_string($folder))
                echo $folder . "/";
            $links[] = '<script src="' . $dir . trim($name) . '.js"></script>' . "\n";
        }

        echo implode(" ", $links);
    }
            $this->make_js_link('ckeditor', 0, 'incl/editor');
            $this->make_js_link('jquery', 'adapters', 'incl/editor');
问题是,PHP在这两种情况下都会转义这一部分:即使我有具有精确字符串值的文件夹变量:

        if (is_string($folder))
            echo $folder . "/";

我哪里做错了?

你做了
echo
而不是

$dir = $parentdir . "/";
if (is_string($folder))
   $dir.= $folder . "/";

“转义此部分”是什么意思?@penartur不回显echo$文件夹。"/"; 即使$folder有精确的字符串value@epic_syntax如果(…{echo…
}
,是否尝试添加周围的括号
?是否确实要
echo
而不是将其附加到
$dir
;您是否在检查已回送的内容,而不是存储在
s
src
属性中的路径?另外,在这种情况下,我建议您使用
if($folder!==null)
而不是
if(is_string($folder))
(并将其称为
$this->make_js_link('ckeditor',null,'incl/editor');
)。