ေစာေစာကေရးခဲ႔တဲ႔ tut ထဲမွာေတာ႔ constant ကို class ထဲမွာေရးခဲ႔နည္းေလးေတြပါ
အခုေတာ႔ အဲဒီ constant နဲ႔ပတ္သက္ျပီး base class ထဲမွာ constant ေရးနည္းနဲ႔ child ထဲမွာ override လုပ္နည္းေတြႏွင္႔
get_called_class ဆိုတဲ႔ method ကိုသံုးျပီး static method ကေန const ကေန မွန္ကန္တဲ႔ တန္ဖိုးကို access လုပ္ၾကည္႔ရေအာင္
<?php
abstract class Object_db
{
const TableName='undefined';
public static function GetClass()
{
$call=get_called_class();
return "SELECT * FROM '" . $call::TableName . " ' " ;
}
}
class PersonTable extends Object_db
{
const TableName="persons';
}
class AdminTable extends PersonTable
{
const TableName='admins';
}
echo PersonTable::GetClass() . "<br/>";
echo AdminTable::GetClass() . "<br/>";
?>
The Output is
SELECT * FROM 'persons';
SELECT * FROM 'admins';
ရွင္းလင္းခ်က္
line 2 =>Object_db ဆိုတဲ႔ class တစ္ခုတည္ေဆာက္
line 4 =>TableName ကို const အျဖစ္သတ္မွတ္
line 5 =>GetClass ဆိုျပီး function တစ္ခုတည္ေဆာက္
line 7 =>Class ကိုျပန္ေခၚသံုးဖို႔ get_called_class() method ကိုသံုးျပီး $call ဆိုတဲ႔ variable ထဲကိုထည္႔
line 8 => Class ထဲမွာ ရွိတဲ႔ TableName ကို SQL statement သံုးျပီး return ျပန္ေပးမွာပါ
line 11=> မူရင္း Base Class ကိုညႊန္းျပီး PersonTable ဆိုတဲ႔ Class ကိုထပ္ျပီးတည္ေဆာက္တာပါ
line 12=> persons ကို TableName ဆိုျပီး const အျဖစ္သတ္မွတ္ပါတယ္
line 15=>PersonTable ထဲ႔က မူရင္း Base Class ကိုထပ္ညႊန္းျပီး AdminTable ဆိုတဲ႔ Class ကိုထပ္ျပီးတည္ေဆာက္တာပါ
line 17=>admins ဆိုျပီး TableName ကို const အျဖစ္သတ္မွတ္ပါတယ္
line 19=>base class ျဖစ္တဲ႔ Object_db ထဲ႕က GetClass function သံုးျပီး (child class )PersonTable ကို SQL Statement နဲ႔ return ျပန္ျပီး output ထုတ္ေပးမွာပါ
line 20=> 19 နဲ႔ တူတူပါပဲ႔ class name ပဲ႔ေျပာင္းသြားတာပါ
ဒီလိုမ်ိဳး php class ေတြသံုးျပီး sql statement တစ္ေၾကာင္းေရးထားရံုုနဲ႔ အဲဒီ class ကိုျပန္ေခၚသံုးျပီး SQl Query ကိုအလြယ္တစ္ကူျပန္လည္ေခၚသံုးနိုင္ပါတယ္
SQL statement အမ်ားၾကီးေရးသားျခင္းကိုလည္း အဆင္ေျပေစပါတယ္ဗ်ာ
အမွားပါရင္လည္း၀င္ေရာက္ေဆြးေႏြးေပးပါလို႔..
No comments:
Post a Comment
Thanks for your comments
Welcome from cyberoot