我还在学习php,所以请对我宽容一点。
我有这个小脚本,我一直在为一个项目工作,但似乎不能让它工作。我只是得到一个错误,每当我试图输出它。
错误输出为:(!)尖叫:错误抑制被忽略(!)解析错误:C:'wamp'www'test.php第16行语法错误,意外'='
<?php
function pickColour() {
//array of colours
$colours = array(
'red' => 'E04739',
'blue' => '0092D6',
'green' => '2CCA71',
'orange' => 'EF6521',
'pink' => 'E73B5B',
'purple' => '2B5B9C'
);
$hash = '#';
$single = array_rand($colours, 6);
print_r($single); . "'n"
echo "$hash .= $single";
}
print pickColour();
?>
有几个问题。首先,您似乎想要一个随机数组元素,但是您指示array_rand()
返回六个元素:
$single = array_rand($colours, 6);
如果您想要单个元素,执行:
$single = array_rand($colours, 1);
甚至:
$single = array_rand($colours);
接下来,这里有一个语法错误:
print_r = $single; . "'n"
由于print_r
是一个函数,它通常这样使用:
print_r( $single );
由于array_rand()
返回数组键(而不是数组值),您应该使用键从数组中检索值:
echo $hash .= $colours[$single] . "'n";
最后,像这样执行函数:
print pickColour();
由于您已经通过print_r()
和echo
在函数中产生输出,因此不需要print
。你应该使用:
pickColour();
你的脚本有一些问题。
-
echo
和print_r
使用错误 函数应该返回一个值 -
array_rand
使用错误
试试这个:
function pickColour() {
//array of colours
$colours = array(
'red' => 'E04739',
'blue' => '0092D6',
'green' => '2CCA71',
'orange' => 'EF6521',
'pink' => 'E73B5B',
'purple' => '2B5B9C'
);
return '#'.$colours[array_rand($colours)];
}
print pickColour();
这就是出现错误的地方:
print_r = $single . "'n";
改为
print_r($single . "'n");
我认为你需要的是这个:
function pickColour() {
//array of colours
$colours = array(
'red' => 'E04739',
'blue' => '0092D6',
'green' => '2CCA71',
'orange' => 'EF6521',
'pink' => 'E73B5B',
'purple' => '2B5B9C'
);
$random_key = array_rand($colours);
return "#" . $colours[$random_key];
}
print pickColour();