[英]Undefined variable when calling fn
我在Laravel中有這個非常簡單的功能,
public function getImage($slug){
// This return an error
$cached = Cache::remember('Test', 10, function(){
$images = $this->allImages();
// Undefined var $slug
return file_get_contents($images[$slug]['image-url']);
});
// This works
// $images = $this->allImages();
// $cached = file_get_contents($images[$slug]['image-url']);
$headers = [
'Content-Type' => 'image/jpeg',
'Cache-Control' => 'max-age=600'
];
return Response::make($cached, 200, $headers);
}
這可能是一個愚蠢的問題,但是我已經很長時間沒有使用PHP了,繞開了為什么$ slug未定義?
當您創建一個匿名函數/閉包,然后將其傳遞給Cache :: remember()時,您需要明確列出父范圍中應在該函數范圍中使用的所有變量。
使用use語句-以下代碼應該起作用:
$cached = Cache::remember('Test', 10, function() use($slug) {
$images = $this->allImages();
// Undefined var $slug
return file_get_contents($images[$slug]['image-url']);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.