(数组)语法有什么作用?

时间:2016-12-02 04:09:28

标签: php arrays

我目前正在Laravel中构建代码,并在我的代码中添加(array)部分修复了我的laravel同步问题,当数组中没有传递数据时。 This is the question我从中学习并获得了(array)代码。

我很难在laravel或php中找到相关文档,并且想知道(array)代码源自哪个语言/框架以及它究竟做了什么。如果您可以将我引导至正确的文档页面,我也会喜欢它。

3 个答案:

答案 0 :(得分:3)

它只是使用现有变量

创建数组的另一种方式
$x = 1; // int
$y = (array)$x; // array[0] => 1
$z = [$x]; // array[0] => 1

我应该注意,最后一种方式是首选(直接将其声明为数组),因为它会更清楚地发生什么(类型变换在转换像这样的值时会产生意外的结果)。

http://php.net/manual/en/language.types.array.php#language.types.array.casting

答案 1 :(得分:0)

我认为你正在努力解决php中类型转换的过程,例如:

PHP类型转换为数组

我们可以使用(array)关键字转换数组中的任何数据类型变量。任何标量数据类型转换为数组都将创建数组并在第0个索引处添加元素。

例如:

<?php
var_dump((array) , 5);// value 5 in the array with 0th index
var_dump((array) NULL);// Will be empty array
?>

Explanation with example

答案 2 :(得分:0)

根据php手册

,它只是一个数组castring

Converting to array

  
    

对于任何类型整数,浮点数,字符串,布尔值和资源,     将值转换为数组会生成具有单个数组的数组     索引为零的元素和标量的值     转换。换句话说,(数组)$ scalarValue与完全相同     阵列($ scalarValue)。

         

如果将对象转换为数组,则结果是一个数组     元素是对象的属性。键是成员变量     名称,有一些值得注意的例外:整数属性是     不可访问;私有变量具有前缀的类名     变量名;受保护的变量有一个&#39; *&#39;前置于     变量名。这些前置值在任一侧都有空字节。     这可能会导致一些意外行为:

  
<?php
> 
> class A {
>     private $A; // This will become '\0A\0A' }
> 
> class B extends A {
>     private $A; // This will become '\0B\0A'
>     public $AA; // This will become 'AA' }
> 
> var_dump((array) new B()); ?>
  

以上似乎有两个名为&#39; AA&#39;的键,尽管其中一个   它们实际上被命名为&#39; \ 0A \ 0A&#39;。

     

将NULL转换为数组会产生一个空数组。