인스턴스 변수를 인스턴스에 암시 적으로 할당 할 수 있습니까? 즉, 인스턴스 변수가없는 클래스의 메서드 내에서이 작업을 수행 할 수 있습니까?암시 적으로 인스턴스 변수를 인스턴스에 할당 할 수 있습니까?
$this->foo = "foo";
$this->bar = "bar";
이상으로 다시 호출 하시겠습니까? PHP는이 경우 인스턴스 변수를 생성합니까?
인스턴스 변수를 인스턴스에 암시 적으로 할당 할 수 있습니까? 즉, 인스턴스 변수가없는 클래스의 메서드 내에서이 작업을 수행 할 수 있습니까?암시 적으로 인스턴스 변수를 인스턴스에 할당 할 수 있습니까?
$this->foo = "foo";
$this->bar = "bar";
이상으로 다시 호출 하시겠습니까? PHP는이 경우 인스턴스 변수를 생성합니까?
예. PHP는 참조되지만 아직 선언되지 않은 멤버 변수를 생성합니다. 난 그냥 다음과 같은 코드로 테스트 :
<?php
class Test {
public function __construct() {
}
public function setMembers() {
$this->foo = "fooValue";
$this->bar = "barValue";
}
public function echoMembers() {
echo $this->foo . "\n";
echo $this->bar . "\n";
}
}
$test = new Test();
$test->setMembers();
$test->echoMembers();
?>
실행이 출력 :
fooValue
barValue
이 작동하는지 증명한다. 모든 클래스 멤버 변수를 클래스 상단에 선언하는 것이 좋습니다. 그것은 당신의 코드를 유지하고있는 OO 프로그래머들이 기대할 것입니다.
는 참고 : 나는 PHP의 다음 버전 내 테스트를 실행 :이 그래도 좋은 방법이 아닙니다
$ php -version
PHP 5.2.8 (cli) (built: Feb 5 2009 21:21:13)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
예, 개체에 새로운 속성이 만들어집니다.
; 클래스 코드의 문서를 생략하고 새 속성을 공개합니다. –
그러나 템플릿 엔진을 작성할 때 유용합니다 :-) – openfrog
최상위 레벨에서 선언 할 필요가 없습니다. PHP는 엄격하지 않으며 필수는 아닙니다. – dusoft