首页 > 解决方案 > PHP全局变量未传递给函数

问题描述

我在页脚中有以下一段 wordpress 代码不起作用,因为全局变量没有传递给函数。为什么?

function output_nav_link( $left ) {
    global $template_directory_uri_images, $current_page_menu_order, $nav_menu_items, $menu_items_count;

    $enabled = $left ? $current_page_menu_order > 1 : $current_page_menu_order < $menu_items_count;
    $output_link = '';
    $output_text = '';
    if ($enabled) {
        $nav_menu_item = $nav_menu_items[$current_page_menu_order - 1];
        $output_link = 'href="' . $nav_menu_item->url  . '"';
        $output_text = $nav_menu_item -> title;
    }
    ?>
    <div>
        <img src="<?= $template_directory_uri_images?>strelica_<?= $left ? 'lijevo' : 'desno'?>.svg" alt="<?= $left ? 'Prethodna' : 'Sljedeća'?> stranica">
        <div>
            <a <?= $output_link ?>><?= $output_text?></a>
        </div>
    </div>
    <?php
}


$template_directory_uri_images = get_template_directory_uri() . '/assets/images/';
$current_page_menu_order = get_post()->menu_order;
$nav_menu_items = wp_get_nav_menu_items('bocni');
$menu_items_count = count($nav_menu_items);

编辑:这似乎是与我的本地配置有关的问题,即 wampserver、Apache 2.4.46 和 PHP 7.4.10

标签: phpvariablesglobal

解决方案


Global不会使变量成为全局变量。

Global表示将使用局部变量,就好像它是具有更高范围的变量一样。

有关更多信息:php 中的全局变量未按预期工作


推荐阅读