Saturday, August 11, 2012

Visibility properties of php


ကၽြန္ေတာ္တုိ႔က php ရဲ႕ keywords ျဖစ္တဲ႔ public , protected , private ေတြကို ၾကိဳျပီး သတ္မွတ္ျခင္းျဖင္႔
property or method ေတြကို ပိုျပီးထင္ရွားေစပါတယ္
Class members ကေၾကျငာခဲ႔တဲ႔ public ဆိုတာက ကၽြန္္ေတာ္တို ႔ document ရဲ႕  ဘယ္ေနရာကမဆို access လုပ္နိုင္ပါတယ္
protected နဲ႔ေၾကျငာတဲ႔ members class ကိုေတာ႔ ကၽြန္္ေတာ္တို႔ရဲ႕ မူရင္း class ထဲ႔မွာ ဒါမွမဟုတ္ parent classes ေတြကို inherited
လုပ္ျပီး access လုပ္နိုင္ပါတယ္
private နဲ႔ေၾကျငာတဲ႔ member class ကိုေတာ႔ member သတ္မွတ္ထားတဲ႔ class ကိုသာပဲ႔ access လုပ္နိုင္မွာပါ

Property Visibility
Class properties ကိုေတာ႔  ေစာေစာကေျပာခဲ႔သလိုပဲ႔ public , private , protected နဲ႔ သတ္မွတ္ပါတယ္
တစ္ကယ္လို႔ var ဆိုတဲ႔ keyword ကိုသံုးျပီး ေၾကျငာမယ္ဆိုရင္ေတာ႔  သူရဲ႕ property ကိုေတာ႔ public လို႔သတ္မွတ္ပါလိမ္႔မယ္
ေအာက္မွာေရးထားတာကိုေလ႔လာၾကည္႔ပါ
<?php
class MyClass
{
    public $public = ' Public ' ;
    protected $protected = ' Protected ' ;
    private $private= ' Private ' ;
   
    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}
$obj = new MyClass() ;
echo $obj->public;
echo $obj->protected;
echo $obj->private;
$obj->printHello();
?>

ရွင္းလင္းခ်က္
line 2 =>  MyClass ဆိုတဲ႔ php Class တစ္ခုေဆာက္ပါတယ္
line 4 =>  public property ကိုသံုးျပီး $public variable တစ္ခုေဆာက္ပါတယ္
line 5 =>  protected property ကိုသံုးျပီး $protected variable တစ္ခုေဆာက္ပါတယ္
liine 6 =>  private property ကိုသံုးျပီး  $private variable တစ္ခုေဆာက္ပါတယ္
line 8 =>  MyClass ဆိုတဲ႔ Class ထဲ႔မွာ printHello ဆိုတဲ႔ function တစ္ခုထည္႔ေရးပါတယ္
line10=>  $this ကိုသံုးျပီး Class ထဲ႔က public ကို echo နဲ႔ထုတ္ျပပါတယ္
line11=>  $this ကိုသံုးျပီး Class ထဲ႔က protected ကို echo နဲ႔ထုတ္ျပပါတယ္
line12=>  $this ကိုသံုးျပီး Class ထဲ႔က private ကို echo နဲ႔ထုတ္ျပပါတယ္
line15=>  MyClass ကို new keyword သံုးျပီး $obj ဆိုတဲ႔ var object ျဖစ္ေအာင္လုပ္လိုက္ပါတယ္
line16=> Object ထဲ႔က public ကို output ထုတ္ျပမွာပါ ဒါက public သံုးျပီးအေပၚမွာေၾကျငာခဲ႔တဲ႔အတြက္ အလုပ္လုပ္ပါတယ္
line17=> Object ထဲ႔က protected ကို output ထုတ္ျပတာပါ ဒါေပမယ္႔ error တက္ပါလိမ္႔မယ္ ဘာေၾကာင္႔လဲဆိုေတာ႔ protected နဲ႔ MyClass ထဲမွာသတ္မွတ္ခဲ႔လို႔ပါ
line18=> line17 နဲ႔ အတူတူပါပဲ႔
line19=> MyClass ထဲ႔က function ျဖစ္တဲ႔ printHello() ကို output ထုတ္ျပတာပါ ဒီ code ကအလုပ္လုပ္ပါတယ္ ဒါေပမယ္႔ ျပေပးမွာေတာ႔မဟုတ္ပါဘူး
                ဘာေၾကာင္႔လဲဆိုေတာ႔အေပၚက line 17 မွာ error တက္သြားလို႔ပါ ျပီးေတာ႔ php code က line by line အလုပ္လုပ္လို႔ပါ
               
ေနာက္ထပ္ေလ႔လာခ်င္ေသးတယ္ဆိုရင္ေတာ႔ေအာက္မွာ MyClass ဆိုတဲ႔ Class ကိုထပ္ခြဲျပီးေရးထားတာကိုေလ႔လာနိုင္ပါတယ္
MyClass ကို extends လုပ္ထားတာေၾကာင္႔အေပၚက code နဲ႔ေပါင္းေရးရပါမယ္

<?php
class MyClass2 extends MyClass
{
    protected $protected = 'Protected2';
    function printHello()
    {
    echo $this->public;
    echo $this->protected;
    echo $this->private;
    }
}
$obj2 = new MyClass2();
echo $this->public;  
echo $this->private;
echo $this->protected;
$obj2->printHello();
?>

Thanks for Reading....
Written by cyberoot
I Regard to Mylove ...& Home :^^^^:
:-(   Miss you...    :( ^_^ )

No comments:

Post a Comment

Thanks for your comments
Welcome from cyberoot