>백엔드 개발 >PHP 문제 >PHP에서 정적 메소드를 사용해야 하는 경우

PHP에서 정적 메소드를 사용해야 하는 경우

angryTom
angryTom원래의
2019-10-19 13:38:095246검색

PHP에서 정적 메소드를 사용해야 하는 경우

php에서 정적 메서드를 사용해야 하는 경우

정적 메서드:

프로그램 실행 시작부터 즉시 메모리를 생성하므로 직접 호출할 수 있어 효율성은 훨씬 높아지지만, 정적 메모리가 제한되어 있습니다. 인스턴스가 너무 많아 프로그램을 직접 시작할 수 없으며 정적 메모리가 상주합니다.

비정적 메서드:

인스턴스 메서드는 호출 시 메모리를 생성하고 분산된 메모리를 적용하기 시작하므로 효율성이 훨씬 느려지고 비정적 메서드는 모두 사용되면 해제됩니다.

차이점:

1. 정적 메서드는 새 메서드를 사용하지 않으므로 사용하기 쉽습니다.

2. 정적은 프로그램이 실행될 때 인스턴스에 메모리가 생성되고 다 써도 해제되지 않기 때문에 빠르고 효율적입니다.

3. Non-static은 호출 시 메모리를 생성하고 사용 후 해제합니다.

정적 메소드는 일반적으로 도구 클래스에서 사용됩니다
예:

class Helper{
    public static function fun1(){}
    public static function fun2(){}
}

동일한 클래스의 객체에 대해 메소드는 동일한 작업을 수행해야 하며 객체 자체와 아무 관련이 없습니다. 일반적으로 이 메소드 정적 메소드로 정의할 수 있습니다.
예를 들어, 클라이언트의 IP 주소를 얻으려는 경우 이 메소드는 일반적으로 비즈니스 로직 클래스와 아무 관련이 없습니다. 그런 다음 메소드를 정의하는 도구 클래스를 정의할 수 있습니다: getClientIP()

class Helper{
public static function getClientIP(){
    $ip = $_SERVER["HTTP_X_CLUSTER_CLIENT_IP"];
    if (strlen($ip) <= 0) {
        $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    }
    if (strlen($ip) <= 0) {
        $ip = $_SERVER["HTTP_CLIENT_IP"];
    }
    if (strlen($ip) <= 0) {
        $ip = $_SERVER["REMOTE_ADDR"];
    }
    return $ip;
}
}

더 많은 PHP 관련 지식을 알고 싶으시다면 PHP 중국어 웹사이트를 방문해 보세요!

위 내용은 PHP에서 정적 메소드를 사용해야 하는 경우의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.