2013-06-20 17 views
-2

我仍然在学习PHP,所以请在我身上轻松一下。麻烦制作一个PHP颜色脚本

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

误差输出为:SCREAM(!):错误抑制忽略 解析错误(!):语法错误,意想不到 '=' 在C:\瓦帕\ 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(); 

>

+1

你得到哪些错误? –

+0

“似乎无法让它工作” - 你甚至不说什么是“工作” – Voitcus

+0

'print_r = $ single; 。 “\ n”'和'echo $ hash。= $ single。 “\ n”;'不是有效的PHP,所以我希望他们抛出错误,这正是我尝试运行此代码时所发生的错误。我假设你也尝试过运行它。 –

回答

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

这是否会随机生成返回中的6个数组值中的任何一个。 – Dannyw24

+0

yes..it选择一个随机值。 [array-rand](http://php.net/manual/de/function.array-rand.php)1是第二个参数的默认值,如果你不添加一个。 – bitWorking

+0

唉好的谢谢我明白,在这个非常感谢php.net没有太多的帮助:) – Dannyw24

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

感谢乔治,反馈很好。 – Dannyw24