2009-03-10 22 views
0

ben sayfa başlıkları için bu sınıf var:Dinamik sayfa başlıkları

class UI { 

    private static $title; 

    public static function getTitle() { return self::$title; } 
    public static function setTitle($value) { self::$title = $value; } 
    } 

Yani basit beyan benim frontpage bunda:

UI::setTitle('Kiubbo.com :: Todas las Noticias, Fotos y Videos'); 

Ve gayet iyi çalışıyor. Sorun, içeriklere (linklerin başlığı) bağlı olarak yorumlanacak sayfa başlıklarını almaktır. Bu değişken olarak aynı olmasını istediğiniz (yani aynı ada sahip ancak onun başka fonksiyonu onun değil aynı getTitle için):

<?php echo $article->getTitle(); ?> 

hangisi onun bu işlevi: herkes Eğer

function showAllComments($article_id, $param) 
    { 

     $article = Article::getById($article_id); 

     if(!empty($article)) 
     { 
      ?> 
      <div class="news_item"> 
       <h2 class="news_item_title"><b><a href = "<?php echo $article->getUrl(); ?>"><?php echo $article->getTitle(); ?></a></b></h2>    

      </div> 

Bunu takdir etmeme yardımcı olabilir.

Thx

cevap

4

ben tamamen yapmak istediğiniz anlamak emin değilim. Her nesnenin ayrı bir başlığa sahip olmasını istiyorsanız, başlık değişkenini statik olmayan (ve ayrıca statik olmayan işlevler) yapmalısınız. Bir statik değişken/işlev, sınıf başına yalnızca bir örneğe sahiptir.

1

"$ article-> getTitle()" ifadesini "UI :: getTitle()" olarak değiştirin ve işe yarayabilir, ancak bunun gerçekten yapmak istediğiniz şey olduğunu düşünmüyorum, değil mi? showAllComments() yılında

1

belki

UI::setTitle($article->getTitle()); 
+0

ben denemek ama çalışmıyor olması yapabilirdi. Muhtemelen başlık showAllComments işlevinden önce oluşturulur. – jcslzr

+0

Evet, bu mantıklı. Belki showAllComments(), article_id yerine bir makalenin örneğini alabilir, daha sonra bu işlevi işlevin dışına getirebilir ve herhangi bir HTML çıktısını almadan önce alabilirsiniz. –