有人可以解释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 :(得分:3)
with
不是关键字,而是laravel函数。 with
和(
之间的额外空格是红色鲱鱼。
5.2 docs include it in miscellaneous helpers。 The source is available on github as well
答案 1 :(得分:1)
https://laravel.com/docs/5.2/helpers#miscellaneous
with()是一个只返回对象的辅助函数。
一个正常的用例我已经看到,当你克隆一个对象时,它允许你链接到那个克隆:
$object = new Object();
with(clone $object)->doSomethingWithoutAffectingTheOriginal();
在您提供的用例中,没有区别。如果您已将实例的创建包装在括号中,则with()完全是多余的。
答案 2 :(得分:0)
with
不是 a PHP keyword。
另请查看language reference页面。
答案 3 :(得分: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;
}
}
从那里简洁的评论,我知道它用于链接,例如一起查询。 (我使用术语'松散地理解。)