2017-06-19 54 views
0

有人可以解釋什麼PHP「與」嗎?PHP「with」關鍵字 - 與「」做什麼?

實例開始:

說我有一個類:

\App\fa_batch

是什麼這一說法的區別:和本聲明

$w = (with (new \App\fa_batch)) 
     // uses 'with' 
     // returns App\fa_batch 

$n = (new \App\fa_batch) 
     // does not use 'with' 
     // also returns App\fa_batch 

/背景信息:

我無法找到文檔with,也許是因爲PHP.net,堆棧溢出與谷歌搜索引擎認爲php "with" keyword這樣一個共同的搜索短語。

如果上下文幫助,我碰到這種用法的詞with從這樣的回答: https://stackoverflow.com/a/33222754/5722034

+0

*「我在用''查找文檔時遇到了問題。」* - 將其作爲提示並嘗試猜測。 – axiac

+0

@axiac從邏輯上來說,這意味着我輸入的搜索短語不足,或者沒有文檔存在。這也意味着我想把我的電腦扔在窗外,但這不合邏輯。 –

+0

@JaseLeow事實上,'with'是一個常見的英文單詞,搜索引擎通常會忽略它或將它指定爲低值。但是,在http://php.net上進行搜索應該會在某種程度上引導您查看列出所有關鍵字的語言定義頁面。 – axiac

回答

3

with不是一個關鍵字,這是一個功能。 with(之間的額外空間是一個紅色的鯡魚。

The 5.2 docs include it in miscellaneous helpersThe source is available on github as well

+0

它不要求Laravel框架「With」Funtion ..它談論'$ w =(with(new \ App \ fa_batch))'differents b/w'$ n =(new \ App \ fa_batch) –

+1

@RïshïKêshKümar,你剛剛描述的**是laravel框架中的'()'函數調用。 – zzzzBov

+0

你的相關問題似乎涉及Eloquent渴望加載,而不是幫助函數。 – Devon

0

with不是 a PHP keyword

也看看language reference頁面。

+0

這應該是一條評論,請閱讀SO的常見問題解答 –

+0

@DonkeyKingandDonkeyKing真的嗎?接受的答案怎麼樣?是否也應該是一個評論? – axiac

1

https://laravel.com/docs/5.2/helpers#miscellaneous

與()是一個輔助函數,僅僅返回對象。

當你克隆的對象我已經看到了在正常使用情況下,它可以讓你在鏈該克隆:

$object = new Object(); 
with(clone $object)->doSomethingWithoutAffectingTheOriginal(); 

在您所提供的使用情況下,有沒有什麼區別。如果你已經用圓括號封裝了實例的創建,那麼with()是完全多餘的。

+0

謝謝你解釋用例這裏有用+1 –

0

感謝各種海報的回答,我意識到這是Laravel的一個功能。這裏是Laravel源:從vendor/laravel/framework/src/Illuminate/Support/helpers.php

if (! function_exists('with')) { 
    /** 
    * Return the given object. Useful for chaining. 
    * 
    * @param mixed $object 
    * @return mixed 
    */ 
    function with($object) 
    { 
     return $object; 
    } 
} 

取自那簡潔的評論在那裏,我的理解是用於鏈接,例如一起查詢。 (我使用「理解」這個術語)