Basit Class Yapılarında Kullanılan Kelimeler
New, ::, __construct, __autoload kullanımları
Basit bir class yapısı
<?php
class Klasımız
{
var $KlasDegiskeni='naber';
function KlasFonksiyonu()
{
if (isset($this)) {
//$this kelmesi (Klasımız) demektir.
echo '$this kelmesi ('.get_class($this).') demektir.';
} else {
echo "$this kelimesi bilinemiyor.n";
}
}
}
$Tureyen=new Klasımız();
echo $Tureyen->KlasDegiskeni; //naber yazar
echo $Tureyen->KlasFonksiyonu(); //$this kelmesi (Klasımız) demektir.
?>
:: operatörü Sınıfın statik ya da sabit olarak tanımlanan üyelerine erişim sağlar, Herhangi bir obje oluşturulmadan sınıfın elemanına erişim sağlar. PHPde bir classin methoduna static olarak erisirken kullanılan karakterlerdir.
<?php
class Klasımız
{
var $KlasDegiskeni='naber';
function KlasFonksiyonu()
{
if (isset($this)) {
echo '$this kelmesi ('.get_class($this).') demektir.';
} else {
echo "$this kelimesi bilinemiyor.n";
}
}
}
$Tureyen=new Klasımız();
echo $Tureyen->KlasDegiskeni; //naber yazar
echo $Tureyen->KlasFonksiyonu(); //$this kelmesi (Klasımız) demektir.
Klasımız::KlasFonksiyonu(); //$this kelimesi bilinemiyor.
?>
:: operatörü klası oluşturmadan klas içerisindeki değerlere erişmek için kullanılır. Bu klas içerisindeki bir değere veya fonksiyona erişmek için klas tanımlamamızı ortadan kaldırır. Bu sayede bellekte sadece bir değişkene erişmek için kullanılan bir class yer işgal etmez.
<?php
class BenimKlas {
const SABIT_DEGER = 'A constant value';
}
echo BenimKlas::SABIT_DEGER;
?>
<?php
class BaskaKlas extends BenimKlas
{
public static $sabit_deger = 'static var';
public static function ciftKolon() {
echo parent::SABIT_DEGER . "n";
echo self::$sabit_deger . "n";
}
}
BaskaKlas::ciftKolon();
?>
parent, self ve Scope Resolution Oparatörünün kullanımına örnek
<?php
class BenimKlas
{
public static $SabitBirDeger = 'Sabit Değerim';
}
class BaskaBirKlas extends BenimKlas
{
public $SabitDeger = 'Sabit Değer';
public static $SabitStatikDeger = 'Sabit Değer';
public static function CiftKolon() {
echo parent::$SabitBirDeger . "<br />"; //sadece static değerlere erişebiliyoruz.
echo self::$SabitStatikDeger . "<br />"; // static değerlere erişmek için $ kullanılır
}
}
BaskaBirKlas::CiftKolon();
?>
class OzelYazdir {
static function MerhabaDunya()
{
print "Merhaba, Dünya";
self::YeniSatirYaz();
print "Naber";
}
static function YeniSatirYaz()
{
print "<br/>";
}
}
OzelYazdir::MerhabaDunya();
/*
$OzelYazdir=new OzelYazdir();
$OzelYazdir->MerhabaDunya();
*/
?>
class yapılarında __construct veya class la aynı isimde fonksiyon kullanımı sonucu class tanımlandığında otomatik ve ilk çalışan fonksiyon belrilenmiş olur.
<?php
class BasitKlas
{
public $Degisken = 'Merhaba Dünya';
public function EkranaYaz(){
echo "$this->Degisken";
}
function __construct(){ //class tanımlandığında otomatik ve ilk çalışan fonksiyon
echo 'Yaşasın Oluşturuldum';
}
function BasitKlas(){ //class tanımlandığında otomatik ve ilk çalışan fonksiyon _construct değil ama classla aynı isimde
echo 'Yaşasın Oluşturuldum';
}
}
$Turemis=new BasitKlas();
echo $Turemis->EkranaYaz();
?>
class yapılarında __destruct kullanımı sonucu class yok edildiğinde çalışan fonksiyon belirlenmiş olur.
<?php
class BenimKlas
{
var $Degisken;
//function BenimKlas(){ Bu yazım __construct ile aynı
function __construct($GelenSayi){ //class tanımlandığında otomatik ve ilk çalışan fonksiyon
$this->Degisken=$GelenSayi;
$this->EkranaYaz();
}
public function EkranaYaz(){
echo "$this->Degisken";
}
function __destruct(){ //class yok edildiğinde otomatik çalışan fonksiyon
echo "Benim Klas Silindi";
}
}
$Turemis=new BenimKlas(5); //Oluştulur oluşturulmaz Ekrana 5 yazar.
//$Turemis=NULL; //Turemis Klasını yok edince destruct çalışıyor
unset($Turemis); //Turemis Klasını yok edince destruct çalışıyor
?>
__autoload fonksiyonu
<?php //klass.php
class BenimKlasim{
var $i=0;
function BenimKlasim(){
echo "naber";
}
}
?>
<?php //test.php
function __autoload("$class_name") { // sayfada tanımlanan bir klass varsa __autoload çalışır.
require_once "$class_name";
}
$obj = new BenimKlasim();
?>