이 PHP 스크립트가 있다고 가정 해 보겠습니다.
<?php
class Aaa
{
protected $var = null;
public function performSomething()
{
$this->var = 'Now we have a string, not more null value';
$bbb = New Bbb();
$bbb->powerOnYou();
}
}
class Bbb extends Aaa
{
public function powerOnYou()
{
var_dump($this->var);
// this dump "NULL" and not string
}
}
$aaa = New Aaa();
$aaa->performSomething();
이 클래스는 문자열이 아닌 NULL 일 때마다 "var_dump"가됩니다.
물론 문자열을 출력해야합니다.
이것은 또한 샌드 박스 링크입니다 : http://sandbox.onlinephpfunctions.com/code/6cd253e1945e78f114749be55ffc5f88ab44dd42
감사합니다
참고 $var
인스턴스 변수가 아닌 클래스 변수입니다. 즉, 클래스의 모든 인스턴스에는 자체 복사본이 있습니다.
클래스의 인스턴스를 만들고 의 복사본을 로 Aaa
설정 합니다 . 그러나 내부 에서 완전히 새로운 class의 인스턴스를 만듭니다.이 인스턴스 에는 . 당신은 설정하지 않았기 때문에 '들 , 그 것이다 때를 출력한다.$aaa
$var
'Now we have a string, not more null value'
performSomething()
Bbb
$var
$bbb
$var
null
이 코드를보고 이해해보십시오. 지금 작업 중이므로 테스트 할 기회가 없었지만 원하는 결과를 얻을 수 있습니다.
<?php
class Aaa
{
protected $var = null;
public function powerOnYou()
{
var_dump($this->var);
}
}
class Bbb extends Aaa
{
public function performSomething()
{
$this->var = 'Now we have a string, not more null value';
$this->powerOnYou();
}
}
$bbb = New Bbb();
$bbb->performSomething();
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다