folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder PHP Class Yazarken Karşılaştığım Hata



PHP Class Yazarken Karşılaştığım Hata

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek

    Fatal error: Using $this when not in object context in /home/iyibu/public_html/_inc/iyibuTema.php on line 166

     

    Bahsedilen kodlar da şöyle hocalar:

     

    Yapmak istediğim şu: bir değişkeni parse ederken var olan classtaki girdi veya dizi fonksiyonunu çalıştırmak istiyorum.

    function dilÇevir_değişken(){
    	$this->değiştir();
    	$this->iyibu = preg_replace_callback(
        '@\#(girdi|dizi) (.*?).=.(.*?)\#@',
        function ($m) {
    	eval('$değişken_içi = '.$m[3].';');
            return $this->$m[1]("$m[2]",$değişken_içi);},
        $this->iyibu);
    	$this->değiştir();
    	}

    mesela:

    #girdi turan = 'deneme'#

    deyince parse edilen değişkende

    $this->girdi('turan','deneme') kodu çalışacak. ama sadece buda değil. 2+1 yazınca string olarak değil sayı olarak girdi girilcek

     

    edit: buraya evalden sonra return'u vardı onu eklemeyi unutmuşum ekledim. şimdi kod doğru birebir çalışmayan kod. okul numaram 166 hatrına el atın :)


    edit2: hocalar lütfen dalga geçmeyin class gerekiyor felan diye tabiki class var 256 satır kodu buraya mı ekleyim allahaşkına???? classın içindeki function bu


    iyibu! yeniden..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sokoban
    sokoban's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek

    .

    sokoban tarafından 26/Ağu/13 23:53 tarihinde düzenlenmiştir

    .
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    sokoban bunu yazdı

    Bu class degil function hocam bunda $this operatorü olmaz

    Hocam dalga geçme şaka yapma ciddiyim burda lütfen..

    Ha belki sen de ciddisindir diye: classın içindeki function zaten bu.


    iyibu! yeniden..
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sokoban
    sokoban's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek
    by_Tet bunu yazdı
    sokoban bunu yazdı

    Bu class degil function hocam bunda $this operatorü olmaz

    Hocam dalga geçme şaka yapma ciddiyim burda lütfen..

    Ha belki sen de ciddisindir diye: classın içindeki function zaten bu.

    Tamam hocam kolay gelsin


    .
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Cosmic
    Cosmic's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    sen ne yapmak istiyosun söylesene hiçbirşey anlamadım. ayrıca o ne öyle türkçe fonksiyon ismi türkçe değişkenler bide üstüne üstlük eval kullanmışsın.


    Bittik biz bittik
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    Cosmic bunu yazdı

    sen ne yapmak istiyosun söylesene hiçbirşey anlamadım. ayrıca o ne öyle türkçe fonksiyon ismi türkçe değişkenler bide üstüne üstlük eval kullanmışsın.

    Hocam türkçe değişkenler sorun yaratmıyor diye biliyorum php 5.3+nde? yani $türkçe = "turan"; echo $türkçe yazınca sorun mu oluyor? utf-8 açıklaması okumuştum bu yüzden kullanıyorum yani.

    Yapmak istediğimi anlattım ama şöyle bikez daha anlatıyım.

    Hocam template engine yapıyorum. .tpl dosyasını okutuyorum. içinde #değişken# gibi yazdırdığım şeyler {if/else/elseif/for/foreach} gibi kodlamalar var onları parse ettiriyorum. hepsi tamam yaptım. girdileri girdi fonksiyonu ile okutuyorum.

     

    #girdi turan = "deneme"# şeklinde parse ettiğim .tpl dosyasında girdi oluşturtmak istiyorum.

     

    Olay bu şekilde.


    iyibu! yeniden..
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    RDxMaster
    RDxMaster's avatar
    Kayıt Tarihi: 15/Eylül/2007
    Erkek

    php fonksiyonun parametresinde fonksiyon tanımlamaya izin veriyormu ? yeni mi geldi bu özellik ?

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    RDxMaster bunu yazdı

    php fonksiyonun parametresinde fonksiyon tanımlamaya izin veriyormu ? yeni mi geldi bu özellik ?

    Hocam: multi satır yaptığım için kodları iyi okuyamadın sanırsam? preg_callback'te tanımlı return functionu yani function içinde function yok :)


    iyibu! yeniden..
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sokoban
    sokoban's avatar
    Kayıt Tarihi: 23/Ocak/2010
    Erkek

    Callback Function içinde $ this kullandigin icin sorun yaratiyor buyuk ihtimalle onu class disi bir islem olarak algiliyor


    .
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    dhmm
    dhmm's avatar
    Kayıt Tarihi: 15/Eylül/2011
    Erkek
    by_Tet bunu yazdı

    Fatal error: Using $this when not in object context in /home/iyibu/public_html/_inc/iyibuTema.php on line 166

     

    Bahsedilen kodlar da şöyle hocalar:

     

    Yapmak istediğim şu: bir değişkeni parse ederken var olan classtaki girdi veya dizi fonksiyonunu çalıştırmak istiyorum.

    function dilÇevir_değişken(){
    	$this->değiştir();
    	$this->iyibu = preg_replace_callback(
        '@\#(girdi|dizi) (.*?).=.(.*?)\#@',
        function ($m) {
    	eval('$değişken_içi = '.$m[3].';');
            return $this->$m[1]("$m[2]",$değişken_içi);},
        $this->iyibu);
    	$this->değiştir();
    	}

    mesela:

    #girdi turan = 'deneme'#

    deyince parse edilen değişkende

    $this->girdi('turan','deneme') kodu çalışacak. ama sadece buda değil. 2+1 yazınca string olarak değil sayı olarak girdi girilcek

     

    edit: buraya evalden sonra return'u vardı onu eklemeyi unutmuşum ekledim. şimdi kod doğru birebir çalışmayan kod. okul numaram 166 hatrına el atın :)


    edit2: hocalar lütfen dalga geçmeyin class gerekiyor felan diye tabiki class var 256 satır kodu buraya mı ekleyim allahaşkına???? classın içindeki function bu

    Hocam bu sekilde yapar misin

     

    function dilÇevir_değişken(){
    	    $this->değiştir();		
    	    $this->iyibu = preg_replace_callback(
    	    '@\#(girdi|dizi) (.*?).=.(.*?)\#@',	    
    		create_function("$m","eval('$değişken_içi = '.$m[3].';');return $this->$m[1]('$m[2]',$değişken_içi);"),
    	    $this->iyibu);
    	    $this->değiştir();
    	    }

    Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver !!! // Hayatin herkes icin bir bavulu vardir !!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    dhmm bunu yazdı
    by_Tet bunu yazdı

    Fatal error: Using $this when not in object context in /home/iyibu/public_html/_inc/iyibuTema.php on line 166

     

    Bahsedilen kodlar da şöyle hocalar:

     

    Yapmak istediğim şu: bir değişkeni parse ederken var olan classtaki girdi veya dizi fonksiyonunu çalıştırmak istiyorum.

    function dilÇevir_değişken(){
    	$this->değiştir();
    	$this->iyibu = preg_replace_callback(
        '@\#(girdi|dizi) (.*?).=.(.*?)\#@',
        function ($m) {
    	eval('$değişken_içi = '.$m[3].';');
            return $this->$m[1]("$m[2]",$değişken_içi);},
        $this->iyibu);
    	$this->değiştir();
    	}

    mesela:

    #girdi turan = 'deneme'#

    deyince parse edilen değişkende

    $this->girdi('turan','deneme') kodu çalışacak. ama sadece buda değil. 2+1 yazınca string olarak değil sayı olarak girdi girilcek

     

    edit: buraya evalden sonra return'u vardı onu eklemeyi unutmuşum ekledim. şimdi kod doğru birebir çalışmayan kod. okul numaram 166 hatrına el atın :)


    edit2: hocalar lütfen dalga geçmeyin class gerekiyor felan diye tabiki class var 256 satır kodu buraya mı ekleyim allahaşkına???? classın içindeki function bu

    Hocam bu sekilde yapar misin

     

    function dilÇevir_değişken(){
    	    $this->değiştir();		
    	    $this->iyibu = preg_replace_callback(
    	    '@\#(girdi|dizi) (.*?).=.(.*?)\#@',	    
    		create_function("$m","eval('$değişken_içi = '.$m[3].';');return $this->$m[1]('$m[2]',$değişken_içi);"),
    	    $this->iyibu);
    	    $this->değiştir();
    	    }

     

    function dilÇevir_değişken(){
    	$this->değiştir();
    	$this->iyibu = preg_replace_callback(
        '@\#(girdi|dizi) (.*?).=.(.*?)\#@',
        array($this,'dene'),
        $this->iyibu);
    	$this->değiştir();
    	}
    	
    	function dene($m)
    	{
    		eval('$değişken_içi = '.$m[3].';');
            $this->$m[1]("$m[2]",$değişken_içi);
    	}

     

    şeklinde hallettik hocam @Cosmic sağolsun :) senin dediğin gibi de olmadı denedim de böyle iyi oldu güzel :)

    Ayrıca kodlar çalışıyor ama farklı hostta çalışmıyordu ilk kodlar. En nefret ettiğim şey: tutarsızlığı yaşıyordum. Düzeldi allahtan sorun kalmadı :)

    by_Tet tarafından 27/Ağu/13 12:38 tarihinde düzenlenmiştir

    iyibu! yeniden..
Toplam Hit: 1525 Toplam Mesaj: 12