2013-12-16 58 views
0

我在裏面包含了所有的HTML顏色文件中創建一個數組PHP艾策斯陣列,(我短路這裏的列表中位)從不同的文件

<?php 
    $AllColorsArray = array(
     'AliceBlue', 
     'AntiqueWhite', 
     'Aqua', 
     'Aquamarine', 
     'Teal',  
     'Thistle',  
     'Tomato'   
    ); 
?> 

這裏我所說的陣列,把裏面所有的色彩select語句

<?php 

require_once('../Class/content_part.class.php'); 
include_once('../Include/Colors_Array_inc.php'); 


class contentSettings extends content_part 
{ 

public function render(){ 

    $result = ' 

     <div class="Content"> 
      <select>'; 

      $length = count($AllColorsArray); 

      for($i = 0; $i < length; $i++){ 
       $result .= '<option>' . $AllColorsArray[$i] . '</option>'; 
      } 

    $result .= '</select></div>'; 

    return $result; 
} 
} 
?> 

我以前在我的一個不同的項目中完成了它,它在那裏工作。 這裏唯一的區別是我調用和使用數組的第二個文件在類中。

有人知道爲什麼這不起作用嗎?並提供解決方案。

+0

它的可變範圍;你的'$ AllColorsArray'被聲明在函數之外,所以函數不能訪問它。您需要將其作爲參數傳遞或作爲全局變量傳遞。或者,考慮到您看起來像使用了一個類,您還可以將其定義爲一個類變量,將其設置在構造函數中,然後以此方式使用它。 – andrewsi

+0

我的問題已經解決了。感謝所有試圖幫助我! –

+0

如果其中一個答案解決了你的問題,那麼你可以接受它;如果你自己想出來,那麼你可以添加你自己的答案,並在你能夠接受時接受它。 – andrewsi

回答

1

你已經錯過了global statement

public function render() { 
    global $AllColorsArray; 
    [...] 
} 
+0

非常感謝。 –

+0

什麼是Global?它是什麼?你能解釋一下還是知道一個鏈接?我在這裏學習不復制粘貼。非常感謝 –

+0

@Boldewyn已經添加了鏈接,請在答案中仔細閱讀;) – Roopendra

0

你缺少$$lenghthfor($i = 0; $i < length; $i++){

此外,$AllColorsArray應作爲一個屬性創建:

class contentSettings extends content_part 
{ 

    public $AllColorsArray=array(
    'AliceBlue', 
    'AntiqueWhite', 
    'Aqua', 
    'Aquamarine', 
    'Teal',  
    'Thistle',  
    'Tomato'   
); 

public function render(){ 

    $result = ' 

     <div class="Content"> 
      <select>'; 

      $length = count($this->AllColorsArray); 

      for($i = 0; $i < length; $i++){ 
       $result .= '<option>' . $this->AllColorsArray[$i] . '</option>'; 
      } 

    $result .= '</select></div>'; 

    return $result; 
} 
} 
+0

是的,我也遇到過這個錯誤。儘管這不是我提到的問題的解決方案。不過謝謝你幫助我! –

+0

這現在可能適用於你。 – Manolo

+0

你的意思是在同一個文件中使用數組? –