无法将参数传递给我的函数


Unable to pass a parameter to my function?

我在一个常见的文件中有以下内容.php:

$debug = true;
function debug_to_screen(&$array) 
    { 
        foreach($array as &$value) 
        { 
            if(is_array($value)) 
            { 
                print("Debug Mode: " + $value); 
            } 
        } 
    } 

在我的主文件中,然后我使用以下命令调用此函数:

require("common.php");     
if(!isset($_COOKIE["qcore"])) 
{
    debug_to_screen("Cookie not found: ", var_dump($_COOKIE['qcore']));
}

但是,我收到以下错误:

致命错误:无法通过引用传递参数 1 C:''DWASFiles''Sites''junglegym''VirtualDirectory0''site''wwwroot''wp-content''plugins''QCORE''login.php 在第 8 行

这是我第一次尝试制作一个可以传递多个值的函数,所以我没有技能来理解为什么这不起作用。基本上 - 我想创建一个调试函数,我可以将多个值传递给它,该函数在我的公共文件中定义。

你的问题在这里:

debug_to_screen("Cookie not found: "...

您正在传递给期望通过引用传递数据的函数 - 这意味着您正在向其发送 ACTUAL 变量,而不是它的副本。

您需要先创建数组,然后通过引用将 i 传递给函数。

像这样:

$array=$_COOKIE;
debug_to_screen($array);

在您的函数中,您将其定义为:

function debug_to_screen(&$array)

额外的&意味着函数正在获取 ACTUAL 变量,而不是它的副本。

这也行不通:

function julie(&$bob)
{
// something..
}

julie(5);

这是因为尽管函数可以更改 5,但它不能通过引用传递返回。

$var1=5;
julie($var1);

这将非常有效,因为可以修改 $var 1,并且调用函数的外部代码可以使用更改的变量。

您的函数function debug_to_screen(&$array)只接受一个参数,但是您将文本作为第一个参数发送,cookie作为第二个参数发送。

所以

取代

debug_to_screen("Cookie not found: ", var_dump($_COOKIE['qcore']));

debug_to_screen($_COOKIE['qcore']);

无需按引用传递,当只定义一个参数时,您将传递两个参数。您还尝试print数组,var_dump打印不返回。

我认为您需要查看正在使用的函数的PHP文档,这里有许多问题。