我在下面的代码中遇到问题。我想有人告诉我为什么echo $menu;
带来意外的0
(零)作为结果? $t
包含数据,下面我用var_dump
向您展示......
<div class="cont_menu">
<div class="menu">
<ul>
<?php
include_once 'banco_pdo.php';
$sql = 'SELECT colaborador_menu_cod,colaborador_menu_sup_cod,menu_descr,menu_nivel,menu_titulo,menu_url FROM colaborador_menu WHERE colaborador_menu_cod in (SELECT colaborador_menu_cod as id FROM menu_por_colaborador WHERE col_cod = :col_cod)';
$colaborador = $_SESSION["colaborador"];
try {
$core = Core::getInstance();
$stmt = $core->dbh->prepare($sql);
$stmt->bindParam('col_cod',$colaborador, PDO::PARAM_INT);
$stmt->execute();
$t = $stmt->fetchALL(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
echo $e->getMessage();
}
unset($sql);unset($core);unset($stmt);unset($colaborador);
if(!empty($t))
{
foreach($t as $linha)
{
if($linha['menu_nivel'] == 1)
{ $principal[] = $linha; }
else
{ $subcat[] = $linha; }
}
$menu = '';
foreach($principal as $linha2)
{
$menu = $menu + "<li><a class=\"hide\" title=\"".$linha2["menu_titulo"]."\" href=\"#\" style=\"font-weight:bold;\">".$linha2["menu_descr"]."</a><!--[if lte IE 6]><a href=\"#\">".$linha2["menu_descr"]."<table><tr><td><![endif]--><ul>";
foreach($subcat as $linha3)
{
if($linha3["colaborador_menu_sup_cod"] == $linha2["colaborador_menu_cod"])
{
$menu = $menu + "<li><a href=\"".$linha3["menu_url"]."\" title=\"".$linha3["menu_titulo"]."\">".$linha3["menu_descr"]."</a></li>";
}
}
$menu = $menu + '</ul><!--[if lte IE 6]></td></tr></table></a><![endif]--></li>';
}
echo $menu;
}
?>
</ul>
</div>
这是var_dump
变量的$t
:
array
0 =>
array
'colaborador_menu_cod' => string '1' (length=1)
'colaborador_menu_sup_cod' => null
'menu_descr' => string 'CATALOGO' (length=8)
'menu_nivel' => string '1' (length=1)
'menu_titulo' => string '#' (length=1)
'menu_url' => string 'CATALOGO' (length=8)
1 =>
array
'colaborador_menu_cod' => string '2' (length=1)
'colaborador_menu_sup_cod' => string '1' (length=1)
'menu_descr' => string 'CATEG. E PROD.' (length=14)
'menu_nivel' => string '2' (length=1)
'menu_titulo' => string 'Categoria e Produtos' (length=20)
'menu_url' => string 'udi_categoria.php?listar=cat_nivel&par=1&op=insert&nivel=1' (length=58)
2 =>
array
'colaborador_menu_cod' => string '3' (length=1)
'colaborador_menu_sup_cod' => string '1' (length=1)
'menu_descr' => string 'PROD. S/ CAT.' (length=13)
'menu_nivel' => string '2' (length=1)
'menu_titulo' => string 'Produtos sem Categoria' (length=22)
'menu_url' => string 'prod_sem_cat.php' (length=16)
3 =>
array
'colaborador_menu_cod' => string '4' (length=1)
'colaborador_menu_sup_cod' => string '1' (length=1)
'menu_descr' => string 'CARACTERISTICA' (length=14)
'menu_nivel' => string '2' (length=1)
'menu_titulo' => string 'Caracteristica de Produtos' (length=26)
'menu_url' => string 'udi_caracteristica.php?op=insert' (length=32)
4 =>
array
'colaborador_menu_cod' => string '5' (length=1)
'colaborador_menu_sup_cod' => string '1' (length=1)
'menu_descr' => string 'MENU' (length=4)
'menu_nivel' => string '2' (length=1)
'menu_titulo' => string 'Menus' (length=5)
'menu_url' => string 'udi_menu.php?listar=menu_nivel&par=1&op=insert&menu_nivel=1' (length=59)
5 =>
array
'colaborador_menu_cod' => string '6' (length=1)
'colaborador_menu_sup_cod' => string '1' (length=1)
'menu_descr' => string 'USUARIOS' (length=8)
'menu_nivel' => string '2' (length=1)
'menu_titulo' => string 'usuarios' (length=8)
'menu_url' => string 'udi_usuario.php?op=insert' (length=25)
答案 0 :(得分:5)
PHP使用.
运算符进行字符串连接,而不是+
。你有这样的代码:
$menu = $menu + "...some text...";
请改用:
$menu = $menu . "...some text...";
甚至:
$menu .= "...some text...";
+
尝试添加两个数字。如果其中一个字符串无法转换为数字,则假定为零。零和零之和为零,因此如果您使用$menu
,则+
为零。