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

Хичээлээр бид 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>

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

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

Өмнөх хичээлүүд бид манай АУСистемийн цөм болох Article классыг бичсэн. Одоо сайтын хэрэглэгчийн талын скриптийг бичих болно. Юуны өмнө хэрэглэгчийн талын программыг агуулах index.php нэртэй файл үүсгэнэ. Энэ файл нь хэрэглэгчийн хөтөч дээр хуудсыг үзүүлэх юм. Файлыг сайтын үндсэн хавтаст хадгалан өгөөд доорх кодыг оруулна.

  Нээгдсэн тоо: 3659 Бүртгүүлэх

Обьект хандалтад программчлалын үндэс болсон класс нь абстракт төрлийнх байж болдог. Хичээлээр абстракт класс ба аргууд гэж юу болох, хэрхэн зарлах, хаана ашиглах талаар үзэх болно. Абстракт класс гэж юу вэ?
Обьектыг шууд үүсгэж болдоггүй классыг абстракт класс гэдэг. Ийм төрлийн классыг үүсгэхдээ abstract гэсэн түлхүүр үгийг ашиглана.
Жишээ нь бидэнд Car гэсэн класс байна гэж үзье. Түүнийг abstract түлхүүр үгийг ашиглан абстракт класс болгоод дараа нь түүнээс обьект үүсгэх гээд үзье.

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

Cookie гэж юу болох, түүнийг үүсгэх, унших, устгах талаар Cookie-тэй ажиллах хичээлд үзсэн. Энэ хичээлээр Php -гийн Cookie ойлголтын талаар арай дэлгэрүүлэн авч үзье. Сервер хэрэглэгчээс POST эсхүл GET аргын алингаар нь ч бай өгөгдөл хүлээн авсан байлаа ч тэр хэрэглэгчийн талаар юу ч мэдэхгүй. Өөрөөр хэлбэл сервер өгөгдөл хүлээн аваад боловсруулаад үр дүнг бидэнд буцаана. Бид серверт шинээр эсхүл дахин шаардлагыг илгээхэд тэр бидний талаар юуг ч санахгүй тул таныг шинэ хэрэглэгч эсхүл үгүй гэдгийг мэддэггүй. Энэ нь хэн нэгэн сохор хөгжимчин гудамжинд тоглолт хийгээд зогсож байхад өнгөрч яваа хүн түүний хандивын хайрцагт мөнгө хийгээд дараа нь буцахдаа дахин хийхтэй төстэй зүйл. Хөгжимчин мөнгө хийсэн хүн түрүүнд нь өгсөн хүн үү эсхүл өөр хүн байв уу гэдгийг мэдэхгүй шүү дээ.

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

Интернет сайтад тодорхой хугацаанд хичнээн хүн зочилсон, тухайн цаг мөчид хэдэн хүн зочилж байгаа, хуудаст хамгийн сүүлд хэзээ хандалт хийсэн гэх мэтийг мэдэх шаардлага гардаг. Эдгээрийг болон бусад олон асуудлыг шийдэхэд PHP –гийн цаг хугацааны функцуудыг ашиглана.

PHP –н цаг хугацааны онцлогууд.

PHP –д одоо хэдэн цаг болж байгааг мэдэхэд time() функцыг ашигладаг.

<HTML>
<HEAD>
<TITLE>Системийн цагийг гаргах</TITLE>
</HEAD>
<BODY>
<?php
echo time(); // 1258599589 утгатай мэдээлэл гарна
?>
</BODY>
</HTML>

Класс ба структурт ердийн талбар, арга, шинжүүдээс гадна статик талбар, арга, шинжүүд байж болдог. Статик талбар, арга, шинжүүд…

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

 

Хичээлээр useState -тэй тун төстэй useRef хукийн талаар авч үзье. useRef хукийн онцлог ашиглалтыг компонент хэдэн удаа дахин…

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

 

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

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

 

Нийтлэлээр графикийн хэвүүдийн /GUI pattern/ түүхийг авч үзье. Боловсруулалтын графикийн хэвүүдийг 30 гаруй жилийн туршид боловсруулж байгаа бөгөөд…

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

 

Хааяа өөр өөр параметрүүдийн багцтай нэг аргыг үүсгэх шаардлага гардаг. Ирсэн параметрүүдээс хамааран аргын тодорхой хэрэгжүүлэлтийг хэрэглэнэ. Ийм…

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

 

Ямарч програмын ажиллагааны чухал хэсэг бол төрөл бүрийн мэдээллийн боловсруулалт, тэдгээртэй ажиллахтай холбоотой байдаг. Иймээс энэ хичээлээс vuejs

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

 

Хичээлээр react -ийн хукуудаас их өргөн ашиглагддаг useEffect -ийн талаар авч үзье. useEffect -ийн ажиллагааг судлах хуудасны кодийг

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

 

Илэрхийлэл бол математикийн хэлний үндэс болсон суурь ойлголтуудын нэг. Математикийн илэрхийллийг тооцооны алгоритм, аксиом, теорем, бодлогын нөхцлүүд гээд…

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

 

Програм зохиох бол нарийн төвөгтэй ажил. Ямар ч програмын хувьд өөрийн хийх ажлаа гүйцэтгэхийн чацуу цаашдаа хөгжих, ажлын…

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