배열 속성을 구현하는 클래스가 있습니다. 그 속성에 두 개의 객체를 설정하려고합니다. 요청 흐름 중에 여러 번 완료 될 것이므로 정적으로 선언됩니다. 그리고 그것은 싱글 톤 클래스가 아닙니다.PHP의 정적 메서드 수명
두 번째로 이것을 추가 할 때 해당 클래스의 속성이 이전 값을 유지합니까? 이 좋습니다
class Foo {
public static $bar = [];
public static function add($value)
{
Foo::$bar[] = $value;
}
}
:
/* file1.php */
Foo::add('value1');
include 'file2.php';
/* file2.php */
...
Foo::add('value2');
이 Foo
의 정의입니다 :
이 예는 (이 아무것도를 변경하는 경우, 정적 방법을 통해 이루어집니다 부가하는) ? 여기서 싱글 톤이 더 좋습니까? 이 문제를 해결할 다른 방법이 있습니까?
정적 메서드를 호출하기 전에 클래스를 선언해야하므로 file2가 올바르지 않습니다. – Palantir
예, 값을 유지합니다. 그러나 이것과 싱글 톤은 모두 전역 변수를 나타내는 멋진 방법이며 전역 변수는 OOP에서 좋은 방법으로 간주되지 않습니다. – lafor
그걸 알지만, 정적이 아닌 클래스에 정보를 몇 가지 더 보관할 수 있을까요? php echo Form :: open();과 같은 것들의 예쁘기는 말할 것도 없습니다. ?>. – khernik