Ben temelde bu yüzden gibi, Exception
bir türetilmiş sınıf var:
class MyException extends Exception {
private $_type;
public function type() {
return $this->_type; //line 74
}
public function __toString() {
include "sometemplate.php";
return "";
}
}
Sonra, ben MyException
şöyle türetilmiştir:
class SpecialException extends MyException {
private $_type = "superspecial";
}
I throw new SpecialException("bla")
, bir işlevi, onu yakalamak ve bu görüntüler, daha sonra __toString
işlevi bir şablon yüklemek gerekir, echo $e
gitmek, ve sonra aslında hiçbir şey geri değilse echo.
Bu şablon dosyasında ne temelde
<div class="<?php echo $this->type(); ?>class">
<p> <?php echo $this->message; ?> </p>
</div>
aklımda, bu kesinlikle çalışması gerekir. Ancak, ben bir istisna atılır aşağıdaki hatayı alıyorum ve bunu görüntülemek için deneyin:
Fatal error: özel mülkiyet SpecialException :: $ _TYPE erişemiyor C:\path\to\exceptions.php on line 74
Ben burada kural ihlal ediyorum Herkes neden açıklayabilir misiniz? Bu kod ile korkunç esprili bir şey yapıyor muyum? Bu durumun üstesinden gelmek için çok daha deyimsel bir yolu var mı? $_type
değişkeninin nokta farklı bir div class yakaladı istisna türüne bağlı olarak kullanılır olmasını istediğiniz (gösterildiği gibi).