我目前正在Laravel中构建代码,并在我的代码中添加(array)
部分修复了我的laravel同步问题,当数组中没有传递数据时。 This is the question我从中学习并获得了(array)
代码。
我很难在laravel或php中找到相关文档,并且想知道(array)
代码源自哪个语言/框架以及它究竟做了什么。如果您可以将我引导至正确的文档页面,我也会喜欢它。
答案 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
?>
答案 2 :(得分:0)
根据php手册
,它只是一个数组castring对于任何类型整数,浮点数,字符串,布尔值和资源, 将值转换为数组会生成具有单个数组的数组 索引为零的元素和标量的值 转换。换句话说,(数组)$ 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转换为数组会产生一个空数组。