2016-12-02 103 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轉換爲數組會導致一個空數組。