최근 클래스 정의 안에서 use
문을 사용하는 클래스를 발견했습니다.PHP : 'use'in class definition
누군가가 정확히 무엇을하는지 설명 할 수 있습니까? 내가 그것에 대해 어떤 정보도 찾을 수 없기 때문입니다.
주어진 파일의 전역 범위에서 멀리 이동하는 방법 일 수 있지만 이해할 수 있습니다. extends
은 하나의 부모 클래스 참조 만 허용하므로 여러 클래스로부터 상속받을 수 있습니다. , 그래서 내 의심을 -
<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
use UserTrait, RemindableTrait;
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('password', 'remember_token');
}
나는 실제로 UserTrait
클래스 내에서 방법을 포함하여이 모델의 몇 가지 예를 본 적이 : 내가 본
예는 Laravel의 원래 설치의 사용자 모델에 있었다 동봉 한 use
문장의 의미에 대해 더 자세히 알고 싶습니다.
PHP documentation는 말한다 :
사용 키워드 파일합니다 ( 전역) 또는 네임 스페이스 선언 내부의 가장 바깥 쪽 범위에 선언해야합니다. 이는 가져 오기가 런타임이 아닌 컴파일 타임에 완료되므로 블록 범위가 될 수 없기 때문입니다.
예 다음 : - 단서
namespace Languages;
class Greenlandic
{
use Languages\Danish;
...
}
는 use
키워드의 잘못된 사용이 있음을 나타냅니다 다음은 사용 키워드의 불법 사용을 보여줍니다?
을 다음 체크 PHP 5 OOP에 포함되어 문을 '사용'그들이 자세한 내용은 단일 상속 있습니다 사용하여 사용되는 특성이라고 그 예제에 - 실제로 대답을주지 않고 그냥 downvote하지 마라! –
http://php.net/manual/en/language.oop5.traits.php – GordonM
정확하게 생각한 것은 다중 상속입니다. '특성은 개발자가 세트를 재사용 할 수있게함으로써 단일 상속의 한계를 줄이기위한 것입니다 다른 클래스 계급에 살고있는 여러 개의 독립적 인 클래스에서 자유롭게 메소드를 사용할 수 있습니다. ' - 정말 그렇게 힘들었 니? - 오 - 그리고 링크에 감사드립니다! –