Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP空数组值声明_Php_Arrays_Declaration - Fatal编程技术网

PHP空数组值声明

PHP空数组值声明,php,arrays,declaration,Php,Arrays,Declaration,我是否可以在不向数组中添加值的情况下,以某种方式将数组值声明为字符串、int等 例如: public $arr = array(string); 简而言之,不是。PHP是一种弱类型语言,不强制使用类型。最接近的是,但在这种情况下,它们对您没有帮助。如果不定义数组值,就不能将数组值声明为字符串、int等。值null(最接近不定义值的值)的类型为null PHP不需要(或支持)变量中的显式类型定义 宣言;变量的类型由其所在的上下文决定 使用该变量 是的,你可以 $arr = array(); se

我是否可以在不向数组中添加值的情况下,以某种方式将数组值声明为字符串、int等

例如:

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对象。谢谢你的建议。