2013-06-20 42 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