麻烦制作一个PHP颜色脚本

时间:2013-06-20 20:55:20

标签: php

我还在学习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();

&GT;

3 个答案:

答案 0 :(得分: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()echo在函数中生成输出,因此不需要print。你应该使用:

pickColour();

答案 1 :(得分:0)

您的脚本存在一些问题。

  1. 错误使用echoprint_r
  2. 该函数应返回值
  3. 错误使用array_rand
  4. 试试这个:

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

答案 2 :(得分:-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();