Хувьсагч , тогтмол , өгөгдлийн төрлүүд

Хичээлээр бид PHP хэлний үндсэн ойлголтууд болох хувьсагч, тогтмолуудын талаар авч үзнэ. Эдгээрийг сайн ойлгохгүйгээр програм бичнэ гэдэг хүндрэлтэй. Та ямар нэгэн програмчлалын хэл мэддэг гэсэн ч энэ хичээлийг үзээрэй. Учир нь PHP хэлэнд өгөгдөлтэй ажиллах онцлогууд байдаг.

Хувьсагч

Програмчлалын ямарч хэлэнд програмын ажиллагааны явцад өөрчлөгдөж байдаг өгөгдлийг хадгалах хэрэгсэл байдаг. Эдгээр нь хувьсагчид юм. Хувьсагч нь нэр болон утгаар тодорхойлогдоно.
Хувьсагч - өгөгдөл хадгалах хэрэгсэл.
Хувьсагчийн тухай илүү сайн ойлгохын тулд жишээ авч үзье.

<?php
   $number=5;                   // хувьсагчид 5 гэсэн утга олгож байна.
   $number=2*$number;           // $number хувьсагчийн утгыг 2 үржүүлнэ
   echo $number;                // $number хувьсагчийн утгыг үзүүлнэ
?>

Жишээнд $number нэртэй хувьсагчид (=) тэмдгийг ашиглан 5 гэсэн утгыг олгосон байна. Хувьсагч нь утга хадгалаад зогсохгүй тэдгээрийг өөрчилж болно. Хоёрдугаар мөрөнд $number хувьсагчийн утгыг хоёр дахин өсгөж байна. Хувьсагчийн утгыг үзүүлэхдээ түүнийг нэрийг ашиглаж байна.

PHP –д хувьсагчийн нэрийг өгөхдөө дараах дүрмийг баримтлах хэрэгтэй.

  • Ямарч хувьсагчийн нэр ($) долларын тэмдэгээр эхлэх ёстой
  • Түүний араас доогуур зураас (_) эсвэл үсэг байна. Тоо байж болохгүй.
  • Дараа нь үсэг, тоо, доогуур зураас байж болно. Харин хоосон зай (space) хувьсагчийн нэрэнд байж болохгүй
  • Хувьсагчийн нэр нь том жижиг үсгийг ялгана. Жишээ нь $number ба $Number хоёрыг нэг ижил хувьсагч гэж үзэхгүй.
<?php
   $2_var=5;                 // буруу нэртэй хувьсагч
   $_2_var=2;                // энэ бол зөв нэртэй хувьсагч
   $color;                   // өнгө заасан хувьсагч
   $user_id;                 // хэрэглэгчийн кодыг заасан хувьсагч
?>

Ихэнх програм зохиогчид баримталдаг PHP Coding Standard гэдэг дүрэм байдаг. Энэ дүрмээр хувьсагчийн нэрийг жижиг үсгээр бичиж үгийг доогуур зураасаар тасалдаг. Дээрх жишээний сүүлийн хоёр мөрийг хар. Хувьсагчийн нэрээр түүнд хадгалагдаж байгаа өгөгдлийг мэдэж болохоор өгөх нь их хэмжээний хувьсагч ашигласан програм зохиоход хэрэгтэй байдаг. Гэхдээ хэт их урт нэр өгөх нь ажиллагааг хүндрүүлдэг гэдгийг санаарай.

Өгөгдлийн төрлүүд

PHP –д дөрвөн (Integer, Double, Boolean, String) энгийн, хоёр (Array, Object) холимог төрлүүд байдаг.

Integer

Энэ төрөл нь хэмжээний хувьд хязгаарлагдсан бүхэл тоон олонлогоор тодорхойлогдоно. Жишээ нь 32 битийн платформын хувьд энэ олонлог нь -2,147,482,648 аас 2,147,482,647 хооронд байдаг. Integer төрлийн өгөгдлүүд 16, 10, 8 гээд төрөл бүрийн тоон системээр бичигдэж болно. Жишээ нь

<?php
  // Доорх гурван тоо нь аравтын системээр 347
   $oct_int_number=0475;                 // наймтын системийн тоо 0 эхэлнэ
   $dec_int_number=347;                  // энэ бол аравтын систем
   $hex_int_number=0X130;                // 16 системийн тоо 0Х эхэлнэ
?>

Double

Double (эсвэл Float) төрөл нь бодит тоон олонлогт харьяалагдана. Өөрөөр хэлбэл өндөр нарийвчлалтай бутархай тоонууд юм. Энэ төрлийн хувьсагчийг том тоонууд болон өндөр нарийвчлалтай тооцоонд ихэвчлэн ашигладаг. Жишээ нь

<?php
   $first_dbl_number=111.99;             
   $sec_dbl_number=4.5e3;                 // энэ бол 4500
   $trd_dbl_number=5E-5;                  // энэ бол 0.00005
?>

Boolean

Хамгийн энгийн өгөгдлийн төрөл нь Boolean юм. Учир нь энэ төрөл нь үнэн (True), худал (False) гэсэн хоёрхон утгатай байдаг. Энэ төрлийг аливаа утгыг үнэн худал гэдгийг шалгахад голдуу ашигладаг. FALSE, TRUE утга нь том жижиг бичлэгийг ялгадаггүй тул false, true гэж бичиж болно.

String

PHP –д String төрөл нь тэмдэгтийн мөрөнд хамаарах бөгөөд уртын хэмжээ нь бараг хязгааргүй байдаг. Энэ төрлийн талаар Мөр хичээлд дэлгэрэнгүй үзэх болно. Жишээ нь

<?php
   $string="Hello, World!";                  
  $null_string="";                    // энэ бол хоосон мөр
?>

Array төрлийн талаар Массив хичээлд үзэх бөгөөд Object төрлийг обьект хандалттай програмчлалд хэрэглэдэг. Эдгээрээс гадна PHP нь (resource, NULL) гэсэн 2 тусгай төрөл болон (mixed, number, callback) гэсэн дундын төрлүүдийг дэмждэг. Эдгээр төрлүүд нь практикт бараг ашиглагддаггүй тул бид хичээлүүдээр эдгээрийн талаар үзэхгүй.

Хувьсагчийг тодорхойлох

Delphi, Pascal зэрэг програмчлалын олон хэлэнд хувьсагчийг урьдчилан ямар төрөлд хамаарахыг заавал зарладаг. Програмд уг хувьсагчид тохирохгүй утга олгоход алдаа гардаг. Энэ тал дээр PHP нь илүү зөөлөн. Энд хувьсагчийг зарлахдаа ямар төрлийнх болохыг заах албагүй. Програмд хувьсагчид утга олгоход төрлийг автоматаар тохируулан өөрчилдөг. Үүнээс гадна програмд нэг хувьсагчид олон төрлийн өгөгдлийг дараалуулан хадгалаж болдог. Энэ чөлөөтэй байдал нь програм зохиогчоос хувьсагчийн төрлийн хяналтыг нарийн болгохыг шаарддаг. Хувьсагчийн төрлийг gettype() функцээр мэддэг. Функцын талаар Функцууд хичээлээс үзээрэй.

PHP -д хувьсагчийн төрөл хэрхэн өөрчлөгдөхийг жишээгээр авч үзье.

<HTML>
   <HEAD>
      <TITLE>Хувьсагчийн төрлийг өөрчлөх</TITLE>
   </HEAD>
   <BODY>
      <?php
         $test_var=12.63;                   // 12.63 утгыг олголлоо
         echo gettype($test_var);      // double гэж гарна
         echo "<br>";
         echo $test_var;                    // 12.63 гэж гарна
         echo "<br>";
         settype($test_var, string);    // хувьсагчийг string төрөл болгоно
         echo gettype($test_var);      // string гэж гарна
         echo "<br>";
         echo $test_var;                    // 12.63 гэж гарна
         echo "<br>";
         settype($test_var, integer); // хувьсагчийг integer төрөл болгоно
         echo gettype($test_var);       // integer гэж гарна
         echo "<br>";
         echo $test_var;                    // 12 гэж гарна
         echo "<br>";
         settype($test_var, boolean);       // хувьсагчийг boolean төрөл болгоно
         echo gettype($test_var);       // boolean гэж гарна
         echo "<br>";
         echo $test_var;                    // 1 гэж гарна
         echo "<br>";
         $test_var="num10";           
         settype($test_var, integer);  // хувьсагчийг integer төрөл болгоно
         echo $test_var;                    // 0 гэж гарна
         echo "<br>";
         $test_var="10num";           
         settype($test_var, integer);  // хувьсагчийг integer төрөл болгоно
         echo $test_var;                    // 10 гэж гарна
     ?>
  </BODY>
</HTML>

Энд settype() функц нь хувьсагчийн төрлийг өөрчилнө. Харин gettype() функц нь хувьсагчийн төрлийг авчирна. Жишээнээс хувьсагчийн төрөл нь тодорхой дүрмээр өөрчлөгдөж байгааг харж болно. Жишээг өөрсдөө туршин ажиллуулаарай. Энэ дүрэмээс заримыг нь дурдвал

Boolean төрөлд шилжихдээ

  • Тэг (0) бүхэл тоо FALSE болно
  • (0.0) бутархай тоо FALSE болно
  • Хоосон мөр эсвэл "0" мөр FALSE болно
  • Бусад бүх утгууд TRUE болно

Integer төрөлд шилжихдээ

  • FALSE – 0 харин TRUE -1 болно
  • Бодит тооны бутархай хэсэг нь орхигдон бүхэл тоо болно. /Жишээг хар/
  • Хэрвээ мөр нь тоогоор эхлээгүй бол 0, эсрэг тохиолдолд тухайн тоо болно. /Жишээг хар/

String төрөлд шилжихдээ

  • FALSE – хоосон мөр харин TRUE -"1" болно
  • Дурын тоо нь тэр хэвээрээ мөр болно

Хувьсагчийг холбох

PHP –д холбоос гэсэн ойлголт байдаг. Үүнийг ойлгохын тулд жишээ авч үзье.

<HTML>
   <HEAD>
      <TITLE>Хувьсагчид холбоос тогтоох</TITLE>
   </HEAD>
   <BODY>
       <?php
          $a=1;              //  $a хувьсагчид 1 гэсэн утга олголлоо
          $b=$a;             //  $a-гийн утгыг $b –д олгох
          $c=&$a;          //  $c-г $a –тай холбох
          $a=5;              //  $a хувьсагчид 5 гэсэн утга олголлоо
          echo $a;           //  5 гэж гарна
          echo "<br>";
          echo $b;           //  1 гэж гарна
          echo "<br>";
          echo $c;           //  5 гэж гарна
       ?>
   </BODY>
</HTML>

Жишээнд бид эхлээд $a хувьсагчид 1 гэсэн утга олгоод дараа нь $b  хувьсагчид $a хувьсагчийн утгыг олгосон. Одоо $a ,$b хувьсагчдын утга ижилхэн. Гэхдээ эдгээр хувьсагчдын аль нэгний утгыг өөрчилөхөд нөгөөгийнхөө утганд ямарч нөлөө үзүүлэхгүй. Харин & тэмдэгтээр бид $c хувьсагчийг $a хувьсагчтай холбон өгч байна. Одоо эдгээр хувьсагчдын утга үргэлж ижилхэн байх болно. Аль нэг хувьсагчийн утгыг өөрчлөхөд нөгөө хувьсагчийн утга даган өөрчлөгдөнө.

Динамик хувьсагч

PHP –д хувьсагчийн нэр нь хувьсагч агуулж байдаг хувьсагчийг ашиглаж болдог. Үүнийг шууд ойлгоход хүндрэлтэй тул жишээгээр авч үзье.

<HTML>
   <HEAD>
      <TITLE>Динамик хувьсагч</TITLE>
   </HEAD>
   <BODY>
     <?php
         $name="id";             //  $name хувьсагч id гэсэн утгатай
         $id=5;                  //  $id-гийн утга нь 5
         echo $$name;            //  5 гэж гарна
     ?>
   </BODY>
</HTML>

$$name төрлийн хувьсагчдыг динамик хувьсагч гэдэг. Програмын явцад олон тооны хувьсагч үүсгэх хэрэгтэй үед ийм хувьсагчдыг голдуу ашигладаг. Жишээ авч үзье.

<HTML>
   <HEAD>
      <TITLE>Динамик хувьсагчийг ашиглах арга</TITLE>
   </HEAD>
   <BODY>
      <?php
         $name="age";
         $age=18;
         echo "<b>$$name</b><br>";         //  $age гэж гарна
         echo "<b>${$name}</b><br>";       //  18 гэж гарна
         echo "<b>${age}</b>";             //  18 гэж гарна
     ?>
  </BODY>
</HTML>

Энд динамик хувьсагчийг гаргах бас нэг аргыг үзүүлсэн. Хэрвээ хувьсагч хашилтанд байгаа тохиолдолд ( {} ) их хаалтыг ашиглах хэрэгтэй. Эс тэгвээс $age гэж гарч ирнэ.

Тогтмолууд

Ямар нэгэн утгыг тэмдэглээд бүх програмын туршид ашиглаж болно. Эдгээрийг PHP -д тогтмол утгууд гэдэг.

Тогтмол гэдэг нь өөрчлөгдөхгүй утга юм.

PHP -д тогтмол утгыг тодорхойлохдоо define() функцыг ашиглана. Бичлэгийн дүрэм нь

            define(<Тогтмолын нэр> , <утга>);

Жишээ нь

<HTML>
   <HEAD>
      <TITLE>Тогтмолыг тодорхойлох</TITLE>
  </HEAD>
   <BODY>
      <?php
         define("ADMIN_NAME","Дорж");
         define("NUMBER_E", 2.71828);
         echo ADMIN_NAME;
         echo "<br>";
         echo NUMBER_E *2;         
     ?>
  </BODY>
</HTML>

Тогтмолоор мөр, тоо, бүхэл тоо, логик утга тодорхойлж болохоос гадна тэдгээрийг үйлдэлд ашиглаж болно. Тогтмолын нэрэнд жижиг том үсгийн алийг ч ашиглаж болдог. Гэхдээ жишээнд бид тогтмолын нэрийг ADMIN_NAME, NUMBER_E гэж өгсөн байгааг анхаар. Энэ нь бид PHP Coding Standard дүрмийг баримталж байгааг илтгэнэ. Дүрмээр тогтмолын нэрийг том үсгээр үгийг хооронд нь доогуур зураасаар зааглаж өгдөг. Тогмолын нэр нь том жижиг үсгийг ялгана. Жишээ нь ADMIN_NAME ба ADMIN_name гэсэн тогтмолууд ижил биш. Тогтмолыг зарласны дараа програмын код дотор утгыг өөрчилж болдоггүй. Жишээ нь

<?php
    define("CONSTANT",5);
    CONSTANT=2;
?>

програмын кодыг ажиллуулахад алдаа гарна. PHP –д өөрийн тогтмолууд байдаг. Тогтмолын нэрийг өгөхдөө эдгээртэй нэрийг давхардуулан өгөхөөс болгоомжлох хэрэгтэй. Ямар нэгэн тогтмол байгаа эсэхийг defined() функцээр мэдэж болно. Тогтмолын нэрийг функцын параметр болгон өгөхөд функц 1 утга буцаавал тогтмол тодорхойлогдсон эсрэг тохиолдолд 0 утгыг буцаадаг.

Урьдчилан тодорхойлогдсон тогтмолууд

PHP –д өөрийн тогтмолууд байдаг. Эдгээрийг урьдчилан тодорхойлогдсон тогтмолууд гэдэг ба гол зориулалт нь системийн мэдээллийг хадгалах байдаг. Жишээ нь PHP_VERSION ба PHP_OS нь PHP –н хувилбар болон серверийн үйлдлийн системийн нэрийг агуулна.
Үүнээс гадна хэрэглэгээнээс хамаарч утга нь өөрчлөгдаж байдаг хэсэг тогтмолууд байдаг. Жишээ нь __LINE__ , __FILE__ тогтмолууд нь мөрийн дугаар, файлын нэрийг агуулдаг. Эдгээр тогтмолын нэрийг том жижиг аль ч байдлаар бичиж болдог. Жишээн дээр авч үзье.

<HTML>
   <HEAD>
      <TITLE>Урьдчилан тодорхойлогдсон тогтмолууд</TITLE>
   </HEAD>
   <BODY>
      <?php
         echo "PHP хувилбар :";
         echo PHP_VERSION;
         echo "<br>";
         echo "Үйлдлийн систем :";
         echo PHP_OS;
         echo "<br>";
         echo "Мөрийн дугаар :";
         echo __LINE__;
         echo "<br>";
         echo "Ажиллаж байгаа файл :";
         echo __file__;
     ?>
   </BODY>
</HTML>

Мэдээлэл таалагдсан бол найзуудтайгаа хуваалцаарай.

  Нээгдсэн тоо: 1997 Төлбөртэй

Өвлөх (Inheritance) гэдэг нь "эцэг" хэмээн нэрлэгдэх байгаа классаас шинэ классыг үүсгэх боломжийг бүрдүүлдэг обьект хандалтат программчлалын үндсэн механизмуудын нэг юм. Энэхүү механизмыг ашиглан өөр классаас үүсгэсэн классыг дэд класс гэж нэрлэдэг. Ийм холбоосыг "эцэг", "хүүхэд" гэсэн ойлголтоор голдуу тайлбарладаг. "Хүүхэд" класс нь "эцэг" -ээс үүсэн түүний шинж болон аргуудыг өвлөн авна. Дэд класст эцэг классаас ("эцэг" классыг бас супер класс гэж нэрлэдэг) өвлөгдөн ирсэн боломжуудыг ихэнх тохиолдолд шинэ боломжуудаар өргөжүүлэн өгдөг.

  Нээгдсэн тоо: 11761 Нийтийн

PHP (Personal Home Page Tools) гэдэг нь веб сервер дээр HTML хуудас үүсгэхэд зориулагдсан програмчлалын хэл юм. Энэ хэлийг сурснаар та хуудасны тоолуур, зочны хуудас гэх мэт энгийн програмаас хэрэглэгчийн үйлдлийг хянах чадвартай том хэмжээний веб сайтыг зохиох боломжтой. Хэлний бүх боломжийг тайлбарлан бичихэд олон хуудас материал болох хэдий ч хэл нь хэн ч үзэхэд энгийн ойлгомжтой. Өнөөдөр олон мянган програм зохиогчид PHP ашиглаж, сая сая веб сайтууд энэ хэл дээр ажиллаж байна.

Хэлний түүхээс

PHP нь програмчлалын бусад хэлнүүдээс ялгаатай нь хэлийг ямар нэгэн компани эсвэл мундаг програм зохиогч боловсруулаагүй харин Расмус Лердорф гэх жирийн програм зохиогч 1994 онд зохиосон. Хэл зохиосон зорилго нь Расмус өөрийн веб хуудасаа илүү интерактив байдалтай болгох байлаа. Удалгүй Расмус програмчлалын C хэл дээр өгөгдлийн сантай холбогдох боломжтой эхний хувилбарыг гаргасан. Энэ нь хэрэглэгчдэд энгийн веб програм зохиох бололцоог олгосон.
1997 онд веб формтой ажиллах боломжтой PHP/FI 2 (Personal Home Page / Form Interpreter) хувилбар гарсан. Энэ хувилбарыг боловсруулах ажилд нилээд олон хүмүүс оролцон ажилласан байна. Ер нь хэл нь анхнаасаа нээлттэй кодтой байсан нь хэн хүссэн хүн хэлийг боловсронгуй болгох ажилд оролцох боломжийг нээж өгсөн. Эдгээр хүмүүст Зив Сураски (Zeev Suraski), Энди Гутманс (Andi Gutmans) нар нь зүй ёсоор тооцогдоно. Расмус дээрх хүмүүстэй хамтран ажилласны үр дүнд 1998 онд PHP 3 гэсэн албан ёсны хувилбарыг гаргасан. Үүний дараа хэл зохиогчид PHP –г цаашид улам боловсронгуй болгосноор 2000 онд хэлний 4.0 хувилбар гарсан ба эдүгээ хэлний 5.0 хувилбар гараад байгаа билээ.

  Нээгдсэн тоо: 4079 Төлбөртэй

Обьект хандалтат программчлалын үндсэн ойлголт бол класс болон обьект байдаг. Обьект хандалтат программчлалын талаар олон зүйлийг бичиж болох хэдий ч класс обьектын талаарх ойлголтыг сайн авсан байхад бүх зүйлүүд ойлгомжтой болоод ирэх болно. Багахан хэмжээний эсхүл нэг зохиогчтой программд энэхүү технологийг ашиглах нь илүүц мэт санагдаж болох ч та Php хэлийг эзэмшин программ зохиох гэж байгаа бол ОХП -ийг заавал ойлгон авсан байх хэрэгтэй. Класс обьектыг тодорхойлж байдаг учраас классын тодорхойлолтоос эхлэе. Хичээлийн жишээнүүдийг шууд туршаад үр дүнг хараад явбал илүү ойлгомжтой. Жишээг туршихын тулд та компьютераа локал сервер болгосон байх хэрэгтэй.

  Нээгдсэн тоо: 1476 Төлбөртэй

Интернет сайтад зочлоход тоолуур, төрөл бүрийн график гэх мэт зүйлүүд их байдаг. Эдгээрийн гол онцлог нь динамик байдлаар ажиллаж байдагт байгаа юм. Энэ хичээлээр бид PHP –гээр динамик зургуудыг хэрхэн үүсгэх талаар авч үзэх болно.
Зураг гэдэг нь цэг бүр нь тодорхой өнгийг агуулж байгаа цэгүүдийн олонлог юм. Өөр хоорондоо шахалтын түвшин, чанар гэх мэт үзүүлэлтээрээ ялгаатай зургийн олон форматууд байдаг. Гэхдээ интернтэд GIF (Graphic Interchange Format), JPEG (Joint Photographic Experts Group), PNG (Portable Network Graphics) гэсэн форматуудыг голлон ашигладаг. Ямар зургийг үзүүлэхээс хамаарч форматыг сонгодог. Олон өнгөний хослолтой фото зургуудад JPEG форматыг ашигладаг бол өнгө багатай жижиг (товч, баннер г.м) зургуудад GIF болон PNG форматыг голлон ашиглах жишээтэй.

Лямбда-илэрхийлэл нь нэргүй аргын хураангуй бичилтийг илэрхийлнэ. Лямбда-илэрхийлэл утга буцаадаг, буцаасан утгыг өөр аргын…

Нээгдсэн тоо : 65

 

Кодийн сайжруулалт /рефакторинг/ хичээлээр програмийн кодоо react -ийн зарчимд нийцүүлэн компонентод салгасан.…

Нээгдсэн тоо : 95

 

Хадгалагч (Memento) хэв обьектын дотоод төлвийг түүний гадна гаргаж дараа нь хайрцаглалтын зарчмыг зөрчихгүйгээр обьектыг сэргээх боломжийг олгодог.

Нээгдсэн тоо : 101

 

Делегаттай нэргүй арга нягт холбоотой. Нэргүй аргуудыг делегатийн хувийг үүсгэхэд ашигладаг.
Нэргүй аргуудын тодорхойлолт delegate түлхүүр үгээр…

Нээгдсэн тоо : 124

 

Математикт харилцан урвуу тоонууд гэж бий. Ямар нэгэн тооны урвуу тоог олохдоо тухайн тоог сөрөг нэг зэрэг дэвшүүлээд…

Нээгдсэн тоо : 125

 

Төсөлд react-router-dom санг оруулан чиглүүлэгчдийг бүртгүүлэн тохируулсан Санг суулган тохируулах хичээлээр бид хуудас…

Нээгдсэн тоо : 179

 

Хуваах нь нэг тоо нөгөө тоонд хэдэн удаа агуулагдаж буй тодорхойлох арифметикийн үйлдэл.
Хуваалтыг нэг бус удаа…

Нээгдсэн тоо : 119

 

Зуучлагч (Mediator) нь олон тооны обьектууд бие биетэйгээ холбоос үүсгэхгүйгээр харилцан ажиллах боломжийг хангах загварчлалын хэв юм. Ингэснээр…

Нээгдсэн тоо : 116

 

Делегатууд хичээлд ухагдхууны талаар дэлгэрэнгүй үзсэн ч жишээнүүд делегатийн хүчийг бүрэн харуулж чадахааргүй байсан.…

Нээгдсэн тоо : 126

 
Энэ долоо хоногт

Адил хажуут трапецын сууриуд 20 ба 12 см. Трапецыг багтаасан тойргийн төв их суурь дээр байрлах бол трапецын диагналыг ол.

Нээгдсэн тоо : 1169

 

тэгшитгэлийн язгууруудын нийлбэрийг ол.

Нээгдсэн тоо : 1088

 

Зурагт үзүүлсэн хагас тойрогт бол AB -ийн уртыг ол.

Нээгдсэн тоо : 840