2016-12-02 100 views
3

我目前在Laravel中构建代码,并在我的代码中添加了(array)部分,以便在阵列中没有数据被传递时修复了我的laravel sync问题。 This is the question我从中学到并获得了(array)的代码使用。(数组)语法是做什么的?

我很难找到这个laravel或php的文档,并想知道(array)代码来自哪种语言/框架,以及它究竟做了什么。如果你能指引我到正确的文档页面,我也会喜欢它。

+0

我会假设Laravel。我从未在任何我看过的PHP代码中看到'(array)'。 –

+2

[类型杂耍](http://php.net/manual/en/language.types.type-juggling.php)是你正在寻找。 – Gerrit0

+0

@ElroyJetson Laravel没有语法。这不是一种语言。 –

回答

0

我觉得你与型铸造在PHP的过程中苦苦挣扎,比如:

PHP型铸造阵列

我们可以使用任何数据类型变量转换成数组(数组)关键字。任何标量数据类型转换为数组将在第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

+0

var_dump((array),5); //数组中的第5个索引是什么意思,不应该有',' –

0

这只是一个阵列castring,根据php手册

Converting to array

对于任何整数的种类,浮点,字符串,布尔和r esource, 将值转换为数组会得到一个数组,其索引为零,且标量的值为 转换后的数组结果为单个 元素。换句话说,(array)$ scalarValue与 数组($ scalarValue)完全相同。

如果一个对象被转换为一个数组,那么结果就是一个数组,其 元素是该对象的属性。密钥是成员变量 的名称,但有一些值得注意的例外:整数属性为 无法访问;私有变量的类名前加 变量名;受保护变量的变量名前加'*'作为前缀。这些前置值在任一侧都有空字节。 这可能会导致一些意外的行为:

<?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()); ?> 

以上会出现有一个名为“AA”两个键,虽然 一个他们实际上是一个名为“\ 0A \ 0A”。

将NULL转换为数组会导致一个空数组。