Php 无法将参数传递给我的函数?
我在common.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); }
$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);