2013-10-07 62 views
1

我可以以某種方式聲明一個數組的值是一個字符串,int等,而不需要增加一個值嗎?PHP空數組值聲明

例如:

public $arr = array(string); 
+0

這是一個不錯的主意,堅持強類型數組,但你不能在普通的數組做到這一點。但我認爲你可以將一個類設置爲[ArrayAccess](http://www.php.net/manual/en/class.arrayaccess.php),並通過拋出異常來拒絕那裏的非字符串值。 – halfer

+0

如果它是一個數組,它的類型*是一個數組。 – fedorqui

回答

2

簡短的回答,沒有。 PHP是一種弱類型語言,不會強加類型。最接近的是type hints,但這些在這種情況下不會幫助你。

0

你不能聲明一個數組值是一個字符串,int等等,而不定義該值。價值null(這是最接近你可以得到沒有定義值)類型null

0

是你可以

$arr = array(); 
settype($arr,'string'); 

PHP settype

+0

這甚至沒有接近OP想要的東西 –

+0

你能解釋一下我想要什麼嗎? –

+0

簡而言之:他想要聲明一個類型安全的數組,即其元素都是指定類型的數組。 這對PHP數組是不可能的(儘管可以用類來模擬類型安全的數組)。 –

0

它只是想,也許不正確,但你可以測試

public function login() 
{ 
    $this->index();//not done yet 
    $arr = array(); 
    foreach ($arr as $element) 
    { 
     $element = ''; 
     // or $element = (string)$element; 
    } 
} 

也許更好的辦法會爲t o使用stdClass的對象而不是數組;或stdClass對象的數組。

+0

改爲使用stdClass對象。感謝您的建議。 – Sune

3

你可以使用這個作爲你越認爲:

$arr = [];