v2.5.2
Giriş yap

class içinde include ile public function çağırma

hasaneryilmaz
1,318 defa görüntülendi

--- a.php

<?php

class a{
    
    public function aa()
    {
        echo "hasan";
    }
    
    include "b.php"; // bu çalışmıyor
}

---b.php


public function bb(){
    echo "Eryılmaz";
}

php ile b dosyasında oluşturduğum public fonksiyonları a clasındaymış gibi nasıl kullanabilirim.

Cevap yaz
Cevaplar (3)
isimimcokguzel2
1386 gün önce

Hocam Classlarda include kullanamazsınız.

Eğer public bir fonksiyon çağırmak istiyorsanız ve bu fonksiyon classtan hiç bir veri almıyor ise static kullanabilirsiniz.
Böylece class içindeki fonksiyonu kolaylıkla alabilirsiniz.

Eğer kolaylıkla classlara ulaşmak istiyorsanız namespace kullanabilirsiniz

// a classı

namespace Deneme;

class A {
    
    public static function aa(){
        return 2 + 2;    
    }
}

Eğer o namespace deki classı çekmek içinse use kullanabilirsiniz.

// başka dosyadaki b classı

use Deneme(tersslash)A;

class B {
    public function bb(){
        $afunc = A::aa();
    }
}

(Bu arada Tayfun Hocam eğer görüyorsanız editorde ters slash işlemiyor.)

ilyasbilgihan
1386 gün önce

PHP bilmiyorum ama include ile b.php dosyasını class a{} tanımlamasından önce çağırın.
Daha sonra class a{} nın içerisinde bb() fonksiyonunu çağırmayı deneyin.

Şöyle ki

<?php

include "b.php";
    
class a{
    public function aa()
    {
        echo "hasan";
        bb();
    }
}

Dediğim gibi php bilmiyorum fakat bu işlemden sonra a class ından bir nesne türetmeniz lazım. O nesne üzerinden aa() fonksiyonunu çalıştırın ve çıktıyı kontrol edin.

hasaneryilmaz
1386 gün önce

    public function __construct()
    {
       include "b.php"; // buraya yazıncada public fonksiyonların başında public var diye hata veriyor.
    }