Home >  > PHP دە جۈپ قوش چېكىتنىڭ ئىشلىتىلىشى

PHP دە جۈپ قوش چېكىتنىڭ ئىشلىتىلىشى

5

ئادەتتە PHP كودلىرى ئارىسىدا جۈپ قوش چېكىت، يەنى “::” بەلگىسىنى تولا ئۇچىرىتىپ قالىمىز. قايسى كۈنى" بىلوگىمغا كود چاپلاش قىستۇرمىسىنى ئۆزگەرتەي" دەپ، ھېلىقى قىستۇرمىنىڭ ئەسلى كودىغا قارىسام، ئەڭ كۆپ ئۇچىراتقىنىم this ھالقىلىق سۆزى بىلەن “::” بەلگىسى بولدى. بېشىدا ئازراق قايقمۇقۇپ قالدىم – دە، بۇنى ئوبدان بىر چۈشەنمەي تۇرۇپ ئىشنىڭ قاملاشمايدىغانلىقىنى ھىس قىلىپ يەتتىم. شۇنىڭ بىلەن بىر قاتار مەنبەلەردىن كۆرۈپ، ئېنىق چۈشەنچە ھاسىل قىلغان بولدۇم.
جۈپ قوش چېكىت ئەمەل بەلگىسى، يەنى تەسر دائىرىسىنى(作用域) بېكىتىش ئەمەل بەلگىسى ئارقىلىق (Scope Resolution Operator) تىنىچ ھالەتتىكى، Const قىممەت، تۈر ئىچىدىكى (class) قايتا يېزىلغان خاسلىق ۋە ئۇسسۇللارنى زىيارەت قىلالايمىز. ئېنىقلانغان مەلۇم تۈرنىڭ تېشىدا بۇ ئەمەل ئارقىلىق مەزكۇر تۈرنىڭ ئۇسسۇل ياكى خاسلىقلىرىنى زىيارەت قىلماقچى بولساق، ئادەتتە تۈر نامىنى ئالدىغا يېزىپ زىيارەت قىلىمىز.
تەپسىلىي ئىشلىتىلىش ئەھۋاللىرى تۆۋەندىكىدەك بىر نەچچە خىل:
1.. پارامىتىر ئارقىلىق مەلۇم تۈرنىڭ سىرتىدىن ئۇنىڭ خاسلىق ياكى ئۇسسۇللىرىنى زىيارەت قىلىشتا ئىشلىتىلىدۇ. مىسالەن:
ئەسكەرتىش: بەت يۈزىدە ئىجرا بوپ كەتكەنلىكتىن، بارلىق مىساللاردىكى PHP باشلىنىش ۋە ئارخىلىشىش بەلگىسى قىسقارتىلدى

class Apple {
  const CONST_VALUE = 'Apple Color';
}
  $classname = 'Apple';
  echo $classname::CONST_VALUE; //PHP 5.3.0, netije: Apple Color
  echo Fruit::CONST_VALUE;  //netije: Apple Color

يەنى تۈر Apple نىڭ ئىچىدىكى تۇراقلىق مىقدار(const قىممەت) نى يۇقىرىقدەك جۈپ قوش چېكىت ئەمىلى ئارقىلىق زىيارەت قىلالايمىز. PHP5.3.0 نەشرىدە تۈر نامىنى ئاۋۋال پارامىتىرغا ئۆتكۈزۈپ بېرىپ، ئاندىن پارامىتىرنى جۈپ قوش چېكىت ئالدىغا قويۇپ ئىشلىتىشكىمۇ بولىدۇ.
2. ۋارىسلىق قىلغۇچى تۈر ئىچىدە ئانا تۈر (parent class) نىڭ خاسلىقلىرىنى زىيارەت قىلىشتا ئىشلىتىلىدۇ. مىسالەن:

class Fruit {
    const CONST_VALUE = 'Fruit Color';
}

class Apple extends Fruit
{
    public static $color = 'Red';
    public static function doubleColon() {
        echo parent::CONST_VALUE . "\n"; // ana turni ziyaret qilish
        echo self::$color . "\n"; // nowettiki tur ichini ziyaret qilish
    }
}
  Apple::doubleColon();  
  // netije: Fruit Color Red

يەنى كۆرۈۋاتقىنىمىزدەك،ۋارىس تۈرنىڭ ئىچىدىكى فۇنكىسىيەدە ئانا تۈرنىڭ خاسلىقلىرىنى زىيارەت قىلىش ئۈچۈن parent:: ھالىتىدە، موشۇ تۈر ئىچىدىكى ئومۇمىي دائىرلىك پارامىتىر (全局变量) نى زىيارەت قىلىشتا self:: ھالىتىدە ئىشلىتىمىز.
3. ۋارىسلىق قىلغۇچى تۈر ئىچىدە، ئانا تۈرنىڭ ئۇسسۇللىرىنى تارتىپ قوزغىتىشتا ئىشلىتىلىدۇ. مىسالەن:

// Fruit namidiki tur
class Fruit
{
    protected function showColor() {
        echo "Fruit::showColor() funkisiyesi qozghitildi\n";
    }
}
 // Fruit qa waris Apple namliq tur
class Apple extends Fruit
{
    //ana turdiki ussulni qayta yezish(Override)
    public function showColor()
    {
        // ana turdiki showColor() funkisiyesini ishlitish
        parent::showColor();
        echo "Apple::showColor() funkisiyesi qozghitildi\n";
    }
}

$apple = new Apple();
$apple->showColor();
// netije:
// Fruit::showColor() funkisiyesi qozghitildi
//Apple::showColor() funkisiyesi qozghitildi

يەنى، ئانا تۈر ئىچىدىكى مەلۇم فۇنكىسيەنى ۋاىس تۈر ئىچىدە parent:: ھالىتىدە ئىشلىتىشكە بولىدۇ.
4. تەسىر دائىرىسىنى بەلگىلەش ئەمىلى ئورنىدا ئىشلىتىلىدۇ. مىسالەن:

    class Apple
    {
    	 // showColor() funkisiyesige eniqlima
        public function showColor()
        {
            return $this->color;
        }
    }

    class Banana
    {
        public $color;
        //构造函数 
        public function __construct()
        {
            $this->color = "Banana is yellow";
        }

        public function GetColor()
        {
            return Apple::showColor();
        }
    }

    $banana = new Banana;
    echo $banana->GetColor();
    // netije:Banana is yellow

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

بۇلارنىمۇ ياقتۇرۇپ قالىسىز

ئۆز - ئۆزۈمنى ئىزدەش بوسۇغىسىدا...


ئۈنچىلەر (5)
نەقىللەر (0)
  1. مېغىز [ جۇغلانما: 9 نومۇر ] Google Chrome 38.0.2125.122Windows 7 دىۋان 2015/05/11 05:16

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

    • تەشنا [ بىلوگ ھۆكۈمدارى ] Google Chrome 42.0.2311.135Windows 8 @ مېغىز 2015/05/11 08:20

      const بولسا ئەدەتتە تۈر(class) ئىچىدە تۇراقلىق مىقدار(يەنى قىممىتى بىر قېتىم بەلگىلەنسە قايتا ئۆزگەرتىشكە بولمايدىغان مىقدار) ئېنىقلاشقا ئىشلىتىلىدۇ، ئادەتتە if شەرت جۈملىسى ئىچىدە ئىشلىتىشكە ياكى تۈرنىڭ سىرتىدا ئىشلىتىشكە بولمايدۇ، قوبۇل قىلىدىغىنى تىنىچ ئوبىكتلار بولىدۇ؛ define بولسا ئادەتتە تۈر سىرتىدا ئومۇمىي دائىرلىك تۇراقلىق مىقدار ئېنىقلاشقا ئىشلىتىلىدۇ. قوبۇللاش ئوبىكتى مەلۇم ئىپادە بولسىمۇ بولىدۇ. PHP تىلىدا بۇ ئىككى ھالقىلىق سۆز تۇراقلىق قىممەت (常量 ) ئېنىقلاشتا ئىشلىتىلىدۇ.
      ====
      ”ئۆزگەرمەس قىممەت“ ئىبارىسى ”تۇراقلىق مىقدار“ غا توغۇرلاندى.

  2. ئالتۇن بۇلاق [ جۇغلانما: 5 نومۇر ] Google Chrome 41.0.2272.101Windows 7 گىلەم 2015/05/14 04:46

    بۇ يەرلىرى C تىلىغا ئوخشاپ قالامدۇ نىمە؟

  • كۆچۈرۈلمە يوق

ئۈنچە قالدۇرۇش