Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法将参数传递给我的函数?_Php_Wordpress - Fatal编程技术网

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

Php 无法将参数传递给我的函数?,php,wordpress,Php,Wordpress,我在common.php文件中有以下内容: $debug = true; function debug_to_screen(&$array) { foreach($array as &$value) { if(is_array($value)) { print("Debug Mode: " + $value); }

我在common.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\u to\u screen(&$array)
只接受一个参数,但是您将文本作为第一个参数发送,cookies作为第二个参数发送

所以

替换

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

你的问题是:

debug_to_screen("Cookie not found: "...
您正在传递给希望通过引用传递数据的函数,这意味着您正在向它发送实际变量,而不是它的副本

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

大概是这样的:

$array=$_COOKIE;
debug_to_screen($array);
在函数中,您将其定义为:

function debug_to_screen(&$array)
额外的
&
表示函数获取的是实际变量,而不是它的副本

这也将不起作用:

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


julie(5);
这是因为尽管函数可以更改5,但它不能通过引用过程返回

$var1=5;
julie($var1);

这将非常有效,因为$var1可以修改,调用函数的外部代码可以使用修改后的变量

不需要通过引用传递,并且在只定义一个参数的情况下传递两个参数。您还试图
打印
数组,var\u dump打印不返回


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

为什么要在这里使用
&
?有什么特别的原因吗?更不用说:a)
debug\u to\u屏幕
接受1个参数,但传递2个参数。b)
debug_to_screen
在传递字符串时接受作为数组的参数。c)
var\u dump
返回
void
我不这么认为?如果我传递一个参数,我会收到如下错误:致命错误:无法在第86行的C:\DWASFiles\Sites\junglegym\VirtualDirectory0\site\wwwroot\wp content\plugins\QCORE\login.php中通过引用传递参数1
$var1=5;
julie($var1);