PHP空数组值声明
我是否可以在不向数组中添加值的情况下,以某种方式将数组值声明为字符串、int等 例如:PHP空数组值声明,php,arrays,declaration,Php,Arrays,Declaration,我是否可以在不向数组中添加值的情况下,以某种方式将数组值声明为字符串、int等 例如: public $arr = array(string); 简而言之,不是。PHP是一种弱类型语言,不强制使用类型。最接近的是,但在这种情况下,它们对您没有帮助。如果不定义数组值,就不能将数组值声明为字符串、int等。值null(最接近不定义值的值)的类型为null PHP不需要(或支持)变量中的显式类型定义 宣言;变量的类型由其所在的上下文决定 使用该变量 是的,你可以 $arr = array(); se
public $arr = array(string);
简而言之,不是。PHP是一种弱类型语言,不强制使用类型。最接近的是,但在这种情况下,它们对您没有帮助。如果不定义数组值,就不能将数组值声明为字符串、int等。值
null
(最接近不定义值的值)的类型为null
PHP不需要(或支持)变量中的显式类型定义
宣言;变量的类型由其所在的上下文决定
使用该变量
是的,你可以
$arr = array();
settype($arr,'string');
这只是想法,可能不正确,但您可以测试
public function login()
{
$this->index();//not done yet
$arr = array();
foreach ($arr as $element)
{
$element = '';
// or $element = (string)$element;
}
}
也许更好的方法是使用stdClass的对象而不是数组;或者stdClass对象的数组。您可以根据自己的想法轻松使用:
$arr = [];
坚持使用强类型数组是一个好主意,但不能使用普通数组。但我认为你可以通过抛出一个异常将一个类设置为一个类,并在那里拒绝非字符串值。如果它是一个数组,那么它的类型就是一个数组。这还不接近OP wantscan的要求。请你解释一下他想要什么?简言之:他想要声明一个类型安全的数组,即一个元素都是指定类型的数组。使用PHP数组是不可能的(尽管可以用类来模拟类型安全数组)。我以前从未见过这个关键字,很有趣。然而,这并不是OP想要的——这只是将一个值重铸为一个新类型,而不是拒绝存储错误类型的值。请参阅我在Q下的评论,了解一种可行的方法。最终改用stdClass对象。谢谢你的建议。