制作php彩色脚本时遇到问题

制作php彩色脚本时遇到问题,php,Php,我还在学习php,所以请对我放松点 我有一个小脚本,我一直在为一个项目工作,但似乎无法让它工作。每当我试图输出它时,我都会得到一个错误 错误输出为:(!)尖叫:忽略的错误抑制 (!)分析错误:语法错误,在第16行的C:\wamp\www\test.php中出现意外的“=” <?php function pickColour() { //array of colours $colours = array( 'red' => 'E04739',

我还在学习php,所以请对我放松点

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

错误输出为:(!)尖叫:忽略的错误抑制 (!)分析错误:语法错误,在第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();

这是您遇到错误的地方:

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

有几个问题。首先,您似乎想要一个随机数组元素,但您指示
array\u rand()
返回六个元素:

$single = array_rand($colours, 6);
如果需要单个元素,请执行以下操作:

$single = array_rand($colours, 1);
甚至:

$single = array_rand($colours);
接下来,这里出现语法错误:

print_r = $single; . "\n"
由于
print\r
是一项功能,因此通常使用如下方式:

print_r( $single );
print pickColour();
由于
array\u rand()
返回数组键(而不是数组值),因此应使用该键从数组中检索值:

echo $hash .= $colours[$single] . "\n";
最后,您执行的函数如下所示:

print_r( $single );
print pickColour();
由于您已经通过
print\r()
echo
在函数中生成输出,因此不需要
print
。你应使用:

pickColour();

你的脚本有一些问题

  • 错误使用
    echo
    print\r
  • 函数应该返回一个值
  • 错误使用
    数组\u 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”
    echo$hash.=$single。“\n”
    不是有效的PHP,所以我希望它们会抛出错误,这正是我尝试运行此代码时它所做的。我想你也试过运行它。@Mike'Pomax'Kamermans
    echo$hash.=$single。“\n”
    绝对是有效的PHP。请停止编辑您的代码。您提出了您的问题,现在您已将其更改为现有答案无效。感谢george,反馈非常好。这是否会在返回时随机生成6个数组值中的任何一个。是的。它会选择一个随机值。1是第二个参数的默认值,如果不添加1.aww好的,谢谢我知道php.net在这方面没有太大帮助,谢谢:)