PHP | Array İle Class Ataması Yapmak

Merhaba arkadaşlar? Bir noktada takıldım.

Ekrana Bilgi fonksiyonunu yazarken duruma göre hata mı uyarı mı ne yazdırılacaksa ona göre div'e class atamak istiyorum. Array kullanmadan bu işi yapabiliyorum. Bu şekilde.

Class isimleri bootstrap kütüphanesinden geliyor.

<?php

	function Bilgi($Baslik, $Mesaj, $Sinif="alert-danger"){
		echo "<div class='alert {$Sinif}' role='alert'><strong>{$Baslik}</strong><br/>{$Mesaj}</div>";
	}
	
	Bilgi("Uyarı!","Bu makaleye henüz yorum yapılmamış.","alert-warning");
?>

Ancak ben akılda kalıcı olsun diye bir dizi yapmak istedim. Yani alert-success yazacağım yere basarili yazayım ama alert-success işlevini yapsın. Ama bir sonuca ulaşamadım. Array to conversion string hatası falan veriyor. Bunu nasıl yapabiliriz? Ya da başka nasıl yapılabilir?

<?php

	function Bilgi($Baslik, $Mesaj, $Sinif="alert-danger"){
		
		$Sinif = array(
			"basarili" => "alert-success",
			"hata" => "alert-danger",
			"uyari" => "alert-warning",
			"bilgi" => "alert-info"
		);
		
		//var_dump($Sinif);
		
		echo "<div class='alert {$Sinif}' role='alert'><strong>{$Baslik}</strong><br/>{$Mesaj}</div>";
	}
	
	Bilgi("Uyarı!","Bu makaleye henüz yorum yapılmamış.",'$Sinif["uyari"]');
?>

 

Son satırda üçüncü parametrede sorun var galiba. $Sinif['uyari'] yazmak yerine string mesaj göndermen gerekiyor olabilir. Aslında dizi yerine switch case olayını kullabilirsin. Örn;

<?php

  function Bilgi($Baslik, $Mesaj, $Tipi="bilgi"){


    // uyarı tipi
    switch ($Tipi){
      case 'basarili': $durum = 'success'; break;
      case 'hata':     $durum = 'danger';  break;
      case 'uyari':    $durum = 'warning'; break;
      case 'bilgi':    $durum = 'info';    break;
      default:         $durum = 'info';    break;
    }

    // uyarıyı gösterelim
    echo "<div class='alert alert-{$durum}'>
            <strong>{$Baslik}</strong>
            <br/>
            {$Mesaj}
          </div>";
  }

  Bilgi("Uyarı!", "Bu makaleye henüz yorum yapılmamış.", "hata");

 

Teşşekkür ederim hocam. Sizin verdiğiniz yöntem daha mantıklı.
Bu şekilde düzenleyerek icon da eklemiş oldum. Bence güzel oldu :)

function Bilgi($Baslik, $Mesaj, $Tipi="hata"){
	
	 // Uyarı tipi
	switch ($Tipi){
		case 'basarili': $Sinif = 'success'; $Icon = 'check-circle'; break;
		case 'hata':     $Sinif = 'danger';  $Icon = 'times-circle'; break;
		case 'uyari':    $Sinif = 'warning'; $Icon = 'exclamation-circle'; break;
		case 'bilgi':    $Sinif = 'info';    $Icon = 'info-circle'; break;
		default:         $Sinif = 'hata';    $Icon = 'times-circle'; break;
	}
	
	echo "<div class='alert alert-{$Sinif}' role='alert'><strong><i class='fa fa-{$Icon}' style='margin-right: 5px'></i>{$Baslik}</strong><br/>{$Mesaj}</div>";
}

 

Cevap Yaz

Cevap yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git