저는 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']);
});
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다