-2

我还在学习php,所以请放轻松。

我有这个小脚本,我一直在为一个项目工作,但似乎无法让它工作。每当我尝试输出它时,我都会收到一个错误。

错误输出是:(!)SCREAM:错误抑制忽略(!)解析错误:语法错误,第16行C:\ wamp \ www \ test.php中的意外'='

     <?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();

?>

4

3 回答 3

2

有几个问题。首先,您似乎想要一个随机数组元素,但您指示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()and在您的函数中生成输出echo,因此print不需要。你应该使用:

pickColour();
于 2013-06-20T21:01:15.730 回答
0

你的脚本有一些问题。

  1. echo和的错误用法print_r
  2. 该函数应该返回一个值
  3. 错误的用法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();
于 2013-06-20T21:02:57.930 回答
-1

这是您有错误的地方:

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();
于 2013-06-20T20:59:18.893 回答