v2.5.2
Giriş yap

classdaki fonksiyon içinde fonksiyon kullanma

hasaneryilmaz
576 defa görüntülendi

yapmak istediğim.


function katbull($par=0,$kategorri=0)
	{
		
		$sira=1;
		$kategorilistele=$GLOBALS["baglan"]->prepare("SELECT * FROM kategoriler WHERE ustkatno= ? ORDER BY sira ASC");
		$kategorilistele->execute(array($par));
		echo "<ul>";
		foreach($kategorilistele as $kategorii)
		{
			
			echo "<li> ".$sira.")  ";
			echo $kategorii["baslik"];
			
				if($kategorii["sira"] != 0)
				{
					echo "<div>  <a class='btn btn-primary' href='index.php?menu=kategoriler&tur=yeni&katsira=".$kategorii["sira"]."'>Alt Kategori Ekle</a>  <a  class='btn btn-warning' href='index.php?menu=kategoriler&tur=duzenle&katsira=".$kategorii["sira"]."'>Düzenle</a> <a class='btn btn-danger' href='index.php?menu=kategoriler&tur=sil&katsira=".$kategorii["sira"]."' onclick='return confirm("Silmek istediginizden Emin misiniz ? Bu kategoriyi sildiğinizde bağlı olan içerikler KATEGORISIZ olarak görünecektir. ")'>Sil</a></div>";
				}
				katbull($kategorii["sira"],$kategorri); // burada fonksiyonu tekrar çağırıyorum.
			echo "</li>";
			$sira++;
		}
		echo "</ul>";
		
	}
	

echo "<ul>";
katbull();
echo "</ul>";


örnek olarak kategoriler şu şekilde

-genel
--birinci
-haber
--son dakika
--spor
-film
--2021 filmleri
-dizi
--leyla ile mecnun
---birinci bölüm
-eğitim
--sınavlar
---kpss
----çıkmış sorular
-----2020 sorular
------Genel Kültür
------Genel Yetenek
-----2021 sorular
-----2019 sorular
---Dgs
----çıkmış sorular
-----2020 sorular
-----2021 sorular
-----2019 sorular

bu fonksiyon içindeki fonksiyon mantığını class içinde nasıl kullanabilirim.

Cevap yaz
Cevaplar (4)
tayfunerbilen
1171 gün önce

şu mantıkta kullanabilirsin;

class Category {

    public function find($parent = 0, $categoryID = 0)
    {
        $sira = 1;
		$kategorilistele = $GLOBALS["baglan"]->prepare("SELECT * FROM kategoriler WHERE ustkatno = ? ORDER BY sira ASC");
		$kategorilistele->execute(array($parent));
		echo "<ul>";
		foreach($kategorilistele as $kategorii)
		{
			echo "<li> ".$sira.")  ";
			echo $kategorii["baslik"];
				if($kategorii["sira"] != 0) {
					echo "<div>  <a class='btn btn-primary' href='index.php?menu=kategoriler&tur=yeni&katsira=".$kategorii["sira"]."'>Alt Kategori Ekle</a>  <a  class='btn btn-warning' href='index.php?menu=kategoriler&tur=duzenle&katsira=".$kategorii["sira"]."'>Düzenle</a> <a class='btn btn-danger' href='index.php?menu=kategoriler&tur=sil&katsira=".$kategorii["sira"]."' onclick='return confirm("Silmek istediginizden Emin misiniz ? Bu kategoriyi sildiğinizde bağlı olan içerikler KATEGORISIZ olarak görünecektir. ")'>Sil</a></div>";
				}
				$this->find($kategorii["sira"], $categoryID);
			echo "</li>";
			$sira++;
		}
		echo "</ul>";
    }

}

$category = new Category;
echo "<ul>";
$category->find();
echo "</ul>";
hasaneryilmaz
1171 gün önce

return ile dönderdim hocam çok sağolasın.



   public function find($parent = 0, $categoryID = 0)
    {
        $sira = 1;
		$kategorilistele = $GLOBALS["baglan"]->prepare("SELECT * FROM kategoriler WHERE ustkatno = ? ORDER BY sira ASC");
		$kategorilistele->execute(array($parent));
		$html = "<ul>";
		foreach($kategorilistele as $kategorii)
		{
			$html .= "<li> ".$sira.")  ";
			$html .= $kategorii["baslik"];
				if($kategorii["sira"] != 0) {
					$html .= "<div>  <a class='btn btn-primary' href='index.php?menu=kategoriler&tur=yeni&katsira=".$kategorii["sira"]."'>Alt Kategori Ekle</a>  <a  class='btn btn-warning' href='index.php?menu=kategoriler&tur=duzenle&katsira=".$kategorii["sira"]."'>Düzenle</a> <a class='btn btn-danger' href='index.php?menu=kategoriler&tur=sil&katsira=".$kategorii["sira"]."' onclick='return confirm("Silmek istediginizden Emin misiniz ? Bu kategoriyi sildiğinizde bağlı olan içerikler KATEGORISIZ olarak görünecektir. ")'>Sil</a></div>";
				}
				$don = $this->find($kategorii["sira"], $categoryID);
				$html .=$don;
			$html .= "</li>";
			$sira++;
		}
		$html .="</ul>";
		return $html;
    }


şeklinde

tayfunerbilen
1171 gün önce

return ile döndürmen lazım ancak çalışmazsa en kötü ihtimalle şöyle yapabilirsin;

class Category {

    public function get()
    {
        ob_start();
        $this->find();
        $categories = ob_get_clean();
        return $categories;
    }

    public function find($parent = 0, $categoryID = 0)
    {
        $sira = 1;
		$kategorilistele = $GLOBALS["baglan"]->prepare("SELECT * FROM kategoriler WHERE ustkatno = ? ORDER BY sira ASC");
		$kategorilistele->execute(array($parent));
		echo "<ul>";
		foreach($kategorilistele as $kategorii)
		{
			echo "<li> ".$sira.")  ";
			echo $kategorii["baslik"];
				if($kategorii["sira"] != 0) {
					echo "<div>  <a class='btn btn-primary' href='index.php?menu=kategoriler&tur=yeni&katsira=".$kategorii["sira"]."'>Alt Kategori Ekle</a>  <a  class='btn btn-warning' href='index.php?menu=kategoriler&tur=duzenle&katsira=".$kategorii["sira"]."'>Düzenle</a> <a class='btn btn-danger' href='index.php?menu=kategoriler&tur=sil&katsira=".$kategorii["sira"]."' onclick='return confirm("Silmek istediginizden Emin misiniz ? Bu kategoriyi sildiğinizde bağlı olan içerikler KATEGORISIZ olarak görünecektir. ")'>Sil</a></div>";
				}
				$this->find($kategorii["sira"], $categoryID);
			echo "</li>";
			$sira++;
		}
		echo "</ul>";
    }

}

$category = new Category;
echo "<ul>";
echo $category->get();
echo "</ul>";
hasaneryilmaz
1171 gün önce

peki bunu

echo $category->find();

şeklinde return işlemi olarak döndürüp nasıl yapabilirim.