奇怪的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
;您是否在检查已回送的内容,而不是存储在
ssrc
属性中的路径?另外,在这种情况下,我建议您使用if($folder!==null)
而不是if(is_string($folder))
(并将其称为$this->make_js_link('ckeditor',null,'incl/editor');
)。