<?php Class Etiket{ var $etiketler; function Etiket($ac,$icerik = null,$kapat = null){ $this->ac = $ac; $this->icerik = $icerik; $this->kapat = $kapat; } function ekle($ac, $icerik, $kapat){ $yeni_etiket = new Etiket( $ac, $icerik, $kapat ); if( $this->kapat == null ) { die("invalid ML object"); } $this->etiketler[] = $yeni_etiket; return $yeni_etiket; } function derle( $derinlik = 0, $paragraf = "\t", $satirbasi = "\n" ){ $metin=null; $centik = str_pad( "", $derinlik, $paragraf ); $metin .= $centik . $this->ac . $satirbasi; if( $this->kapat == null ) return $metin; if( $this->icerik != null) $metin .= $centik . $paragraf . $this->icerik . $satirbasi; if (is_array($this->etiketler)){ $anahtarlar = array_keys($this->etiketler); foreach($anahtarlar as $anahtar){ $metin .= $this->etiketler[$anahtar]->derle( $derinlik + 1, $paragraf ); } } $metin .= $centik . $this->kapat . $satirbasi; return $metin; } } $ml=new Etiket("<html>","","</html>"); $ml->ekle("<h1>","Merhaba","</h1>"); $ml->ekle("<div>","Ulusan Yazılım","</div>"); echo $ml->derle(); ?>
Çıktısı
<html> <h1> Merhaba </h1> <div> Ulusan Yazılım </div> </html>