나는 자바에서이에 대한 몇 가지 질문을 읽었습니다하지만 난 PHP에서 원하는 내용을 찾을 수 없음 -이 매우 가까웠지만 : php static methods question
Call method non-static with static in PHPPHP는
static 내에서 비 정적 메서드를 호출 할 수 있습니까?
다음과 같은 세션 클래스 (session::init()
이 있음)가 있지만 오류 메시지가 표시되지 않도록하는 방법을 배울 수 없습니다. 그래서 정적 또는 공개 할 필요가 없습니다 - -
<?php
class session {
public static function init(){
if (**QUERY HERE**_is_session_started() === FALSE) {
// if (session_status() == PHP_SESSION_NONE) {
@session_start();
} else {
echo "Session already started<br/>";
}
}
private function _is_session_started() {
if (php_sapi_name() !== 'cli') {
if (version_compare(phpversion(), '5.4.0', '>=')) {
return session_status() === PHP_SESSION_ACTIVE ? TRUE : FALSE;
} else {
return session_id() === '' ? FALSE : TRUE;
}
}
return FALSE;
}
}
나는 단지 이제까지 _is_session_started 기능은 init() 함수에 의해 호출하려는하지만 난 그것을 참조하는 방법을 모르겠어요.
나는 여기QUERY '자기 ::'페이지가로드를 교체,하지만 난이 오류가 나타나면 :
PHP Strict Standards: Non-static method session::_is_session_started() should not be called statically in /Applications/MAMP/htdocs/mvc/libs/session.php on line 5
을하지만 $ this-를 사용하여 비 정적 방법을 참조하려고하면 > _is_session_started() 정적 init() 함수가 세션 클래스를 인스턴스화하지 않았기 때문에 치명적인 오류가 발생합니다.
그래서 나는 이것을 할 다른 방법이있을 것이라고 생각하고 있습니다. _is_session_started 메소드를 정적으로 만들거나, init 함수를 더 길게 만들 수는 있습니다 만, 이것이 왜 그런지 이해하고 싶습니다. 그것은 어떤 이해가되지 않습니다
로 전화하면 [정역학을 사용하여 귀하의 테스트 용이성을 죽이지 방법] 읽을 수 있습니다 (http://kunststube.net/static/는) – deceze