2011-06-10 3 views
22

PHP 치명적인 오류를 액세스 할 수 없습니다 줄에 /web/index.php 보호 속성 예외 : $ 메시지에 액세스 할 수 없습니다 내가 가지고있는 라인 23 일 23PHP 보호 된 속성 오류

,

echo '<?xml version=\'1.0\'?><error-response status="error"> 
<message><![CDATA['.$e->message.']]></message> 
</error-response>'; 

I 이걸로 뭔가 잘못 볼 수 없지만,이 로그에서 가끔 위의 예외를 참조하십시오. 뭐가 문제 야?

답변

58

사용 $e->getMessage() 대신 $e->message : 당신은 대중 접근 getMessage를 원한다. 당신은 속성의 가시성에 더 빠른 응답을위한here

+0

빠른 답장을 보내 주셔서 감사합니다. 나는 이것을 시도 할 것이다 – Ram

+0

'$ this-> user-> getUsergroup()'을 사용하는 것을 제외하고는 내 TYPO3 Extbase 프로젝트에서 완벽하게 작동했다. getter-setter 원리 - 이해하기 시작합니다. – Mateng

+0

필자의 예외 결과에서'$ e-> getMessage()'를 사용하면 try try catch 블록에서 정의되지 않은 함수를 호출하는 것에 대한 오류가 발생합니다. / –

16

$message은 오류 메시지 상태로 Exception 클래스의 protected입니다. 메시지가 보호 특성 :

+0

감사를 발굴 할 수

class MyClass { public $public = 'Public'; protected $protected = 'Protected'; private $private = 'Private'; function printHello() { echo $this->public; echo $this->protected; echo $this->private; } } $obj = new MyClass(); echo $obj->public; // Works echo $obj->protected; // Fatal Error echo $obj->private; // Fatal Error $obj->printHello(); // Shows Public, Protected and Private 

. 나는 이것을 밖으로 시험 할 것이다. – Ram

3

회원은 클래스 자체 내에서 상속 부모 클래스에서 액세스 할 수있는 보호 선언이기 때문에

$e->getMessage()