我需要在PHP中调用一个接受3个参数RGB值的函数。此函数将RGB颜色值转换为HSL值,因此括号中需要(R,G,B)
。
这是我的功能:
function RGBtoHSL($red, $green, $blue) {
// convert colors
}
其中,如果我对以下内容进行测试,它的工作正常:
RGBtoHSL(255,0,0);
也是这样的:
RGBtoHSL(255,000,000);
现在,在我的页面下方,我有一个变量$displayRGB
,它以当前格式xxx,xxx,xxx
保存当前像素RGB值。我已经回应了这个变量来测试格式符合我的要求,但是当我尝试将这个变量添加到我的函数调用者时,它失败并显示错误“Missing argument 2,Missing argument 3”并指向这一行:
RGBtoHSL($displayRGB);
我仍然在使用PHP(来自ASP),有人可以帮我指出正确的方向并将我的假人传给我吗?
答案 0 :(得分:4)
你的$displayRGB
是一个单一的变量(字符串类型,我推测)。你可以做的是将这个字符串拆分成一个数组:
$rgbArray = explode(',', $displayRGB);
然后将其传递给您的函数
RGBtoHSL($rgbArray[0], $rgbArray[1], $rgbArray[2]);
答案 1 :(得分:3)
您不能将数组(我假设$ displayRGB是一个数组)作为PHP中的“所有三个参数”传入。尝试
RGBtoHSL($displayRGB[0], $displayRGB[1], $displayRGB[2]);
或修改您的函数以接受数组。
如果$ displayRGB是一个“xxx,yyy,zzz”的字符串,你可以在其上运行爆炸
$colors = explode(",", $displayRGB);
并将$ colors设置为索引包含xxx,yyy和zzz的数组。
然后如上所述传递它。
答案 2 :(得分:1)
尝试此而不是eval
call_user_func_array('RGBtoHSL', explode(',', $displayRGB));
答案 3 :(得分:0)
你的$ displayRGB值是多少?
如果它是“255,0,0”你应该先“爆炸”
e.g。
<?php
list($r,$g,$b)=explode(',',$displayRGB);
RGBtoHSL($r,$g,$b);
答案 4 :(得分:-2)
你不能在函数中放入一个字符串,并希望它为你爆炸字符串。
你需要这样:
$string = '255,0,0';
$array = explode(',', $string);
RGBtoHSL($array[0], $array[1], $array[2]);
答案 5 :(得分:-2)
我可能会因此受到抨击,但这肯定有用:
eval("RGBtoHSL($displayRGB);");
不要这样做。它会起作用......但是不要这样做。