PHP函数存在问题--通过配置文件向索引添加链接(多个链接)

PHP函数存在问题--通过配置文件向索引添加链接(多个链接),php,Php,因此,我目前正在进行一个小项目,该项目将有一个配置文件,我可以在其中编辑/添加更多链接等 所以我想做的是以下几点。 当我在config.php中添加新的$link=addLink时,它会自动将链接添加到主页。但到目前为止,它还没有添加到主页的链接。当我回显$url['link']时,但如果我回显$link['link'],则回显第一个链接,而不是两个链接。我用while循环,foreach和for尝试了这个 我不确定这是否是最好的方法 以下是我的一些代码: config.php 我的职能: fu

因此,我目前正在进行一个小项目,该项目将有一个配置文件,我可以在其中编辑/添加更多链接等

所以我想做的是以下几点。 当我在config.php中添加新的$link=addLink时,它会自动将链接添加到主页。但到目前为止,它还没有添加到主页的链接。当我回显$url['link']时,但如果我回显$link['link'],则回显第一个链接,而不是两个链接。我用while循环,foreach和for尝试了这个

我不确定这是否是最好的方法

以下是我的一些代码: config.php

我的职能: function.php


欢迎所有关于我如何做到这一点的建议!我也会保持这个更新,如果我发现和解决方案

我想你得试试这个:

function addLink($link){
    $arrLink         = explode(";", $link);
    $url[]['link']     = $arrLink[0];
    $url[]['name']     = $arrLink[1];
    $url[]['navlink']  = "<li class='nav-item'><a class='nav-link' href='".$arrLink[0] ."'>".$arrLink[1] ."<a></li>";
    return $url;
}
您尝试过的代码将只替换现有的元素,这就是您必须在之前添加[]的原因

您要做的是覆盖$link变量-您要做的是将返回推送到数组中

差不多

$link = array();

array_push($link, addLink("https://forums.website.com;Forums"));
array_push($link, addLink("https://donate.website.com;Donate"));

print_r($link);

有两种方法,也许还有其他方法

使用变量引用保留url列表,这不是OOP样式。 函数addLink$link,&$url{ $arrLink=explode;,$link; $url['link']=$arrLink[0]; $url['name']=$arrLink[1]; $url['navlink']=.$url['name']。; 如果!$URL{ $URL=[]; } $url[]=$url; 返回$url; } $URL=[]; $link=addLinkhttps://forums.website.com;论坛,$URL; $link=addLinkhttps://donate.website.com;捐赠$URL; 使用OOP风格。 类导航{ 受保护的静态$URL=[]; 公共静态函数add$link,$name={ $url=[]; $url['link']=$link; $url['name']=$name; $url['navlink']=.$url['name']。; self::$url[]=$url; 返回$url; } 公共静态函数getURL{ 返回self::$url; } } 导航::addhttps://forums.website.com,论坛; 导航::addhttps://donate.website.com捐赠 $url=Nav::geturl;
我认为第二种方法更好。

你只有一个元素,这是真的吗?每次你写$link=addLink。。。使用新值覆盖$link变量。$link应该是包含所有链接对象的数组吗?不清楚。也许你应该做$link[]=addLink。。。每一次。但我不确定,因为您所展示的代码完全脱离上下文。第二个示例很好。在第一个示例中,重复与OP相同的错误。
function addLink($link){
    $arrLink         = explode(";", $link);
    $url[]['link']     = $arrLink[0];
    $url[]['name']     = $arrLink[1];
    $url[]['navlink']  = "<li class='nav-item'><a class='nav-link' href='".$arrLink[0] ."'>".$arrLink[1] ."<a></li>";
    return $url;
}
$link = array();

array_push($link, addLink("https://forums.website.com;Forums"));
array_push($link, addLink("https://donate.website.com;Donate"));

print_r($link);