class içinde include ile public function çağırma
--- 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.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
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.)
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.
public function __construct()
{
include "b.php"; // buraya yazıncada public fonksiyonların başında public var diye hata veriyor.
}