Stilly

Stilly

بېكەت باشلىقى

يازمىلىرى
ئەگەشكۈچىلىرى
ئەگەشكەنلىرى
74
32
0

php دىكى قايتا يېزىش ۋە قايتا يۈكلەش

ئوبىكتقا يۈزلەنگەن php پىروگرامما ئېچىش جەريانىدا بەلكىم override ۋە overload قاتارلىق ئاتالغۇلارنى ئۇچرىتىپ قالىمىز .ئۇنداقتا بۇلار ھەققىدە قىسقىچە توختىلايلى.


1.override قايتا يېزىش .خەنچە 重写 دەيمىز.

بۇ يەردىكى override بولسا ،مەلۇم تارماق تۈر (子类) ئۆزىى ۋارىسلىق قىلغان مەركىزى تۈر (父类) نىڭ مەلۇم بىر فۇنكىسىيەسىنى ئۆزىدە ئوخشاش نامدا يەنە بىر قېتىم ئەمەلگە ئاشۇردى دەپ چۈشەنسەك بولىدۇ.مەسىلەن تۆۋەندىكى كودقا قارايلى

<?php
class Person
{
    public $personName;
    public function eat()
    {
        echo 'ئادەم تاماق يەيدۇ';
    }
}

class Man extends Person
{
    public function eat()
    {
        echo 'ئەرلەر تاماق يەيدۇ';
    }
}

يۇقارقى كودتا Person دەپ ئومۇمىي تۈر بار،Man دىگەن تارماق تۈر Person غا ۋارىسلىق قىلدى.ئىككى تۈردا ئوخشاشلا eat ناملىق فۇنكىسىيە بار.بىزئەمدى 

$Person = new  Person();
$Person->eat();

ئارقىلىق ئۈنۈمىنى كۆرۈپ باقساق 'ئادەم تاماق يەيدۇ' دىگەن نەتىجە چىقىدۇ.

$man = new Man();
$man->eat();

ئارقىلىق ئۈنۈمىنى كۆرۈپ باقساق 'ئەرلەر تاماق يەيدۇ' دىگەن نەتىجە چىقىدۇ.

بىز بۇنى دەل قايتا يېزىش دەيمىز.يەنى ،Man دىگەن تارماق تۈر Person غا ۋارىسلىق قىلىش بىلەن بىرگە Person تۈرى ئىچىدىكى ناملىق فۇنكىسىيەنى قايتا يازدى.


2.overload قايتا يۈكلەش.خەنچە 重载 دەيمىز.

بۇ يەردە overload نى مۇنداق چۈشەنسەك بولىدۇ. ئوخشاش ئىسىملىك فۇنكىسىيەلەردىن بىر نەچچىسى بار.لىكىن بۇ فۇنكىسىيەگە ئۇزىتىلىدىغان پاراممېتېرلارنىڭ سانى ۋە سانلىق مەلۇمات تېپىنىڭ ئوخشىماسلىقىغا ئاساسەن ئوخشاش ئىسىملىك فۇنكىسىيەلەرنى ئايرىم ئايرىم ئىشلىتىشكە بولىدۇ. لىكىن php ئوخشاش ئىسىملىك فۇنكىسىيەنى قوللىمايدۇ .بۇنى قانداق ھەل قىلىمىز؟php دا بۇ مەسىلىنى __call فۇنكىسىيەسى ئارقىلىق ھەل قىلىشقا بولىدۇ،يەنى تۆۋەندىكى كودقا قاراپ باقايلى.

test1($params);
            }else if (count($params)==2)
            {
                $this->test2($params);
            }
        }
    }

}
$obj = new Person();
//一个参数
$obj->test('oyghan');
//当接受的参数个数为1的时候这个函数被调用
//array(1) { [0]=> string(6) "oyghan" }

//两个参数
$obj->test('oyghan','25');
//当接受的参数个数为2的时候这个函数被调用
//array(2) { [0]=> string(6) "oyghan" [1]=> string(2) "25" }

بۇ ھەقتە يەنىمۇ ئىلگىرلەپ ئىزدىنىپ باقماقچى بولغانلار ئوبىكتىقا يۈزلەنگەن php ھەققىدە ئىزدىنىپ باقساڭلار بولىدۇ.