2016-12-02 2 views
3

Я в настоящее время строю код в Laravel и добавляю часть (array) к моему коду, исправил мою проблему синхронизации laravel, когда в массиве не было данных. This is the question Я узнал от и получил код (array).Что делает синтаксис (массив)?

Мне сложно найти документацию для этого в laravel или php, и мне было интересно, какой язык/фреймворк имеет код (array) и что он точно делает. Если бы вы могли направить меня на нужную страницу документации, мне тоже понравилось бы.

+0

Я бы предположил, что Laravel. Я никогда не видел «(массив)» в любом PHP-коде, на который я смотрел. –

+2

[Тип Жонглирование] (http://php.net/manual/en/language.types.type-juggling.php) - это то, что вы ищете. – Gerrit0

+0

@ ElroyJetson Laravel не имеет синтаксиса. Это не язык. –

ответ

4

Это просто еще один способ создания массива, используя существующую переменную

$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

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-м индексом, что это значит, не должно быть ',' –

0

Это просто castring массив, в соответствии с PHP Manual

Converting to array

Для любого из целочисленных типов, float, string, boolean и r esource, Преобразование значения в массив приводит к массиву с одним элементом с индексом нуль и преобразованным значением . Другими словами, (array) $ scalarValue в точности совпадает с массивом ($ scalarValue).

Если объект преобразуется в массив, результатом является массив, элементами которого являются элементы . Ключами являются переменная-член с несколькими заметными исключениями: целочисленные свойства: unaccessible; частные переменные имеют имя класса, добавленное к имени переменной ; защищенные переменные имеют значение '*', добавленное к имени переменной . Эти предварительные значения имеют нулевые байты с обеих сторон. Это может привести к некоторому неожиданному поведению:

<?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 в массив приводит к пусту массива.

Смежные вопросы