PHP无法将全局变量导入到类内部的函数中

HddnTHA

我有一个基于php和mysql的无限菜单类,可在stackoverflow上找到。我已针对多语言网页对其进行了自定义。但是,当我尝试将全局变量导入类时,会给我一个警告。

警告:第75行的C:\ wamp \ www \ path \ menu.php中为foreach()提供了无效的参数

这是Sql查询和get_menu_items函数:

function get_menu_items()
        {
                global $lang;
                global $visibility;
                $sql = 'SELECT menu. * , menu_lang. * 
                FROM menu
                INNER JOIN menu_lang 
                ON menu.id = menu_lang.menu_id
                AND menu_lang.menu_lang_iso = '.$lang.'
                AND menu_lang.visibility = '.$visibility.'';
                return $this->fetch_assoc_all( $sql );
        }

$lang变量来自lang.php文件。看起来像;

<?php
ob_start();
session_start();
header('Cache-control: private');
if(isset($_GET["lang"])) {
    $lang = $_GET["lang"];
    $_SESSION["lang"] = $lang;
    setcookie("lang", $lang, time() + (3600 * 24 * 30));
}
elseif(isset($_SESSION["lang"])) {
    $lang = $_SESSION["lang"];
}
elseif(isset($_COOKIE["lang"])) {
    $lang = $_COOKIE["lang"];
}
else {
    $lang = "tr";
    $_SESSION["lang"] = $lang;
    setcookie("lang", $lang, time() + (3600 * 24 * 30));
}
ob_end_flush();

我在警告行上签名75 TH LINE,您可以在下面找到它;

function get_menu_html( $root_id = 0 )
        {
                $this->html  = array();
                $this->items = $this->get_menu_items();

                foreach ( $this->items as $item )
                        $children[$item['parent_id']][] = $item; // 75. LINE HERE

                $loop = !empty( $children[$root_id] );
....

如果我更改不带变量manuel值的sql查询,它会很好地工作;

$sql = 'SELECT menu. * , menu_lang. * 
        FROM menu
        INNER JOIN menu_lang 
        ON menu.id = menu_lang.menu_id
        AND menu_lang.menu_lang_iso = "tr"
        AND menu_lang.visibility = '.$visibility.'';

我想念什么?我的语言脚本不能处理last else语句,还是get_menu_items函数不能导入$lang变量?

任何帮助将不胜感激。

NoobEditor

字符串连接的老式错误 '

  $sql = "SELECT menu. * , menu_lang. * 
          FROM menu
          INNER JOIN menu_lang 
          ON menu.id = menu_lang.menu_id
          AND menu_lang.menu_lang_iso = '".$lang."'
          AND menu_lang.visibility = '".$visibility."'";

它能做什么

这个特殊的部分:'".$lang."'将确保在查询中获取的变量用'引号引起来!

另外,升级到更好,更安全的工作方式

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP-类内部的全局变量-在内部函数中访问

来自分类Dev

类函数内部的函数全局变量

来自分类Dev

无法修改函数内部的全局变量

来自分类Dev

无法从类构造函数中访问全局变量

来自分类Dev

php类中的全局变量

来自分类Dev

PHP在函数中声明全局变量

来自分类Dev

无法将 tesseract 函数的结果值存储到异步函数内的全局变量

来自分类Dev

将模块内的所有函数和类导入到python类中

来自分类Dev

无法在函数内部访问JavaScript全局变量

来自分类Dev

angular / javascript无法识别函数内部的全局变量

来自分类Dev

PHP访问其他函数内部函数中的全局变量

来自分类Dev

如何将变量从主操作面板导入到类文件中?

来自分类Dev

在异步函数或内部promise中设置全局变量的值?

来自分类Dev

如何将Ajax JSON对象存储到全局变量中以在函数外部访问

来自分类Dev

模拟导入到函数内部的模块

来自分类Dev

将 Redux 中的 Props 直接导入到函数中

来自分类Dev

Python:导入的函数访问全局变量

来自分类Dev

从Python中的类函数访问全局变量

来自分类Dev

PyQt4 使用类中函数的全局变量

来自分类Dev

如何将swift类导入到ViewController中?

来自分类Dev

建立将哪个类实现导入到模块中

来自分类Dev

将scala类导入到matlab中?

来自分类Dev

全局变量传递到函数参数列表中

来自分类Dev

jQuery更改函数内部的全局变量

来自分类Dev

探测全局变量以调用内部函数

来自分类Dev

函数内部的Python全局变量

来自分类Dev

Python修改函数内部的全局变量

来自分类Dev

访问在函数内部定义的全局变量

来自分类Dev

无法在 addeventListener 函数中更新全局变量

Related 相关文章

热门标签

归档