2013-10-07 64 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 = [];