PHP / Хувьсагч ба тогтмол

Хувьсагч ба тогтмол

Программчлалын аль ч хэлэнд өгөгдлийг хадгалах арга хэрэгтэй. PHP-д үүний тулд хувьсагч (variable) ба тогтмол (constant) ашигладаг. Хувьсагч нь өөрчлөгдөж болдог утга, тогтмол нь нэг удаа тогтоогдоод өөрчлөгддөггүй утга хадгалдаг.

Хувьсагч зарлах

PHP-д хувьсагч нь $ тэмдгээр эхэлдэг. Зарлахдаа тусгай тушаал хэрэггүй — шууд утга оноох замаар үүсгэнэ:

php
<?php
$ner = "Батбаяр";
$nas = 25;
$цалин = 1500000.50;
$идэвхтэй = true;

echo $ner;   // Батбаяр
echo $nas;   // 25
?>

PHP нь динамик төрлийн (dynamically typed) хэл тул хувьсагчийн төрлийг тодорхой зарлах шаардлагагүй. PHP өөрөө таньж авна.

Нэрлэх дүрмүүд

Хувьсагчийн нэр зөв байхын тулд дараах дүрмийг баримтална:

php
<?php
// ✓ Зөв нэрлэлтүүд
$oron_too = 42;
$myNer = "Дорж";
$_нуувч = "далд утга";
$ner2 = "хоёрдугаар нэр";

// ✗ Буруу нэрлэлтүүд
// $2ner = "буруу";      ← тоогоор эхэлж болохгүй
// $миний-нэр = "буруу"; ← зураас хэрэглэж болохгүй
// $class = "буруу";     ← PHP-ийн нөөц үгийг ашиглаж болохгүй
?>

Нэр нь үсэг эсвэл _ тэмдгээр эхэлж, үсэг, тоо, _ л агуулж болно.

Утга оноох ба өөрчлөх

Хувьсагч нь нэрнийхээ дагуу "хувьсдаг" — дурын үед утгыг нь солих боломжтой:

php
<?php
$оноо = 0;
echo $оноо;    // 0

$оноо = 100;
echo $оноо;    // 100

$оноо = $оноо + 50;
echo $оноо;    // 150

// Товчилсон хэлбэр
$оноо += 25;
echo $оноо;    // 175
?>

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

php
<?php
$a = 10;
$b = $a;       // $a-ийн утгыг $b-д хуулна
$a = 99;       // $a өөрчлөгдлөө

echo $a;       // 99
echo $b;       // 10 — $b өөрчлөгдөөгүй
?>

Тогтмол зарлах

Тогтмол нь нэг удаа утга оноогдоод програм дуустал өөрчлөгддөггүй. define() функц эсвэл const түлхүүр үгээр зарлана:

php
<?php
// define() ашиглан
define("MAX_ОНОО", 100);
define("САЙТ_НЭР", "Ulaanbaatar.app");

echo MAX_ОНОО;     // 100
echo САЙТ_НЭР;     // Ulaanbaatar.app

// const ашиглан (класс дотор буюу файлын эхэнд)
const ХУВИЛБАР = "1.0.0";
echo ХУВИЛБАР;     // 1.0.0

// ✗ Тогтмолыг өөрчлөх оролдлого — алдаа гарна
// MAX_ОНОО = 200;  ← буруу!
?>

Тогтмолын нэрийг заншлаар том үсгээр бичдэг.

PHP-ийн суурь тогтмолууд

PHP нь хэд хэдэн бэлэн тогтмолтой:

php
<?php
echo PHP_VERSION;        // 8.2.12 (таны хувилбар)
echo PHP_EOL;            // мөрийн эцэс тэмдэг
echo PHP_INT_MAX;        // 9223372036854775807
echo PHP_INT_MIN;        // -9223372036854775808
echo M_PI;               // 3.1415926535898 (π)
echo DIRECTORY_SEPARATOR; // \ (Windows) эсвэл / (Linux/Mac)
?>

Хувьсагч vs Тогтмол — харьцуулалт

php
<?php
// Хувьсагч — өөрчлөгдөж болно
$хэрэглэгчийн_нэр = "Дорж";
$хэрэглэгчийн_нэр = "Болд";   // ✓ зөв

// Тогтмол — өөрчлөгдөж болохгүй
define("ТАТВАРЫН_ХУВЬ", 10);
// ТАТВАРЫН_ХУВЬ = 15;          // ✗ алдаа!

// Хувьсагч $ тэмдэгтэй, тогтмол $ тэмдэггүй
echo $хэрэглэгчийн_нэр;       // Болд
echo ТАТВАРЫН_ХУВЬ;            // 10
?>

Дараагийн хичээлд:

PHP-ийн өгөгдлийн үндсэн төрлүүдийг — string, integer, float, boolean, null, array — нарийвчлан судална. var_dump() функцээр хувьсагчийн төрлийг хэрхэн шалгахыг сурна.