uaa() 함수는 특별히 정의되지 않은 경우에도 정적 함수로 사용할 수 있습니다. "정적"키워드를 사용해야하는지 궁금합니다.PHP에서 "정적"키워드가 필요합니까?
<?php
class foo
{
functon uaa()
{
// do something
}
}
uaa() 함수는 특별히 정의되지 않은 경우에도 정적 함수로 사용할 수 있습니다. "정적"키워드를 사용해야하는지 궁금합니다.PHP에서 "정적"키워드가 필요합니까?
<?php
class foo
{
functon uaa()
{
// do something
}
}
잘 모르겠습니다. 그러나 당신은 그것이 E_STRICT 트리거 그렇게 할 경우 :
엄격한 기준 : 비 정적 메서드 을 :: 정적으로 C에서 를 호출 할 수 없습니다() non_static : \ file.php 라인 (12)
정적 인 것과 그렇지 않은 것을 명확히 밝히는 것이 좋습니다. 객체 컨텍스트가 아닌 $this
에 액세스하려고 시도 할 가능성이 적습니다.
엄밀히 말하면 정적이 아닌 함수를 정적으로 호출 할 수 있습니다. 그래도 E_STRICT
오류가 발생합니다. 그리고 메서드에서 $this
을 사용하면 더 큰 오류가 발생합니다 (나는 그것이 E_WARNING
이지만 매우 중요 할 수 있음을 확신합니다).
static
키워드가 시행되었습니다. 인스턴스에서 정적 메서드를 호출하지 못하게하는 것입니다. 따라서 엄격하게 필요한 것은 아니지만 적절한 호출을 식별하고 부분적으로 시행하는 데는이를 사용하는 것이 좋습니다.
더하기, "미래 보장"코드가 있습니다. 제 말은 PHP의 이후 버전에서 비 정적 메소드를 정적으로 호출 할 수있을 때 "기능"을 제거 할 수 있다는 것입니다 (이는 현재 E_STRICT
오류입니다).
* (PHP Manual :'static' 키워드) (http://us2.php.net/manual/en/language.oop5.static.php) – Gordon