Ба хонандаи аз алгебра ё ягон забони барномасозӣ малакадошта мафҳуми тағйирёбанда бегона нест. Дар ин дарс бо тағйирёбадаҳо дар PHP шинос мешавем.
Тағйирёбандаҳо барои нигоҳ доштани ягон қимат ба монанди матн ё адад ва ё ягон объекти мураккабтар пешбинӣ шудаанд. Тағйирёбанда дар рафти иҷрои скрипт метавонад якчанд маротиба истифода шавад ва қимати худро иваз кунад. Дар PHP тағйирёбанда дар чунин намуд муайян карда мешавад:
$номи_тағйирёбанда=қимати_тағйирёбанда;
Ба мавҷуд будани рамзи $ дар ибтидои номи тағйирёбанда аҳамият диҳед. Бе ин рамзи доллар скрипт бо тағйирёбанда кор намекунад. Ин хатогиро бисёр навкорон роҳ медиҳанд.
Ҳарфҳои хурд ва ҳарфҳои калон дар номи тағйирёбанда рамзҳои гуногун ҳисобида мешаванд. Ҳангоми такроран истифода бурдани ҳамон як тағба тарзи навиштани он аҳамият диҳед. Масалан, барои PHP тағйирёбандаҳои $a_number ва $A_number ду тағйирёбандаҳои гуногунанд.
Дар PHP тағйирёбандаҳо эълон карда намешаванд, чӣ тавре ки дар C++ аст. Инак, барои истифодаи тағйирёбанда дар скрипт рамзи доллар, номи тағйирёбанда, оператори бахшидани қимат (=) (assignment operator) ва қимат навишта мешаванд.
Ҳангоми интихоби ном ба тағйирёбандаҳои PHP қоидаҳои зеринро риоя кардан зарур аст:
- номи тағйирёбанда иборат аст аз ҳарфҳои хурду калони лотинӣ, рақамҳо ва рамзи "_";
- рамзи аввали тағйирёбанда ҳарф ё рамзи "_" бояд бошад.
Пештар гуфтем, ки фармони echo барои хориҷ кардани матн ба броузер истифода мешавад. Қимати тағйирёбандаҳоро низ ба воситаи echo чоп карда мешавад.
namuna05.php
<?php
$x = "Сатре барои чоп";
$a_number = 4;
echo "<h5>$a_number</h5>";
echo $x;
?>
Чӣ тавре ки аз ин мисол пай бурдан мумкин аст, хориҷи қимати тағйирёбандаҳоро ҳам дохили сатр ва ҳам танҳо бо навишти номи тағйирёбанда иҷро кардан мумкин аст.
Азбаски қимати тағйирёбандаро мо дар броузер инъикос карданием, пас риоя кардани синтаксиси HTML дар фармони echo ҳатмист.
Истифодаи PHP омехта бо HTML имкониятиҳои калонро медиҳад. Лекин дар ин ҳолат нозукиҳои худ мавҷуданд. Масалан, истифодаи нохунакҳои дучанда (") ва нохунакҳои якчанда ё апострофҳо (') дар фармони echo. Гап сари он аст, ки дар фармони echo нохунакҳо барои муайян кардани ибтидо ва интиҳои сатрҳо истифода мешаванд. Ҳангоми истифодаи нохунакҳо дар сатр чунин рафтор кардан лозим аст:
- Нохунакҳоро дар дохили сатр истифода набаред.
- Агар дар дохили сатр нохунакҳо зарур бошанд, пеш аз онҳо рамзи backslash (\) гузоштан зарур аст, масалан \".
- Дар дохили сатре, ки бо нохунакҳои дучанда муайян шудааст, аз нохунакҳои якчанда (') истифода бурдан мумкин аст.
- Дар дохили сатре, ки бо нохунакҳои якчанда муайян шудааст, аз нохунакҳои дучанда (") истифода бурдан мумкин аст.
namuna06.php
<?php
// ин сатр хато аст, чунки нохунакҳо байни нохунакҳо гузошта шудаанд
echo "<h5 class="specialH5">I love using PHP!</h5>";
// ин сатр дуруст аст, чунки пеш аз нохунакҳо backslash гузошта шудаанд
echo "<h5 class=\"specialH5\">I love using PHP!</h5>";
// ин сатр дуруст аст, чунки ба ивази
// нохунакҳои дучанда нохунакҳои якчанда гузошта шудаанд
echo "<h5 class='specialH5'>I love using PHP!</h5>";
?>
Ҷуфти аломатҳо \" дохили сатр дар echo ба PHP нақл мекунад, ки рамзи нохунак бояд хориҷ карда шавад. Агар ин рамзи \ намебуд, онгоҳ рамзи " ҳамчун аломати охири сатр қабул карда мешуд ва рамзҳои минбаъда ба хатогӣ оварда метавонанд.
Бори дигар имконияти истифодаи тағйирёбанда дохили сатрро қайд мекунем. Агар номи тағйирёбанда дохили сатри бо нохунак (") маҳкамшуда навишта шуда бошад, интерпретатори PHP ҳангоми хориҷкунӣ ба ҷои номи тағйирёбанда қимати онро хориҷ мекунад.
Барои пайваст кардани ду сатр аз рамзи нуқта - оператори пайвасткунӣ истифода мекунанд.
namuna07.php
<?php
$string1 = "Анвар";
$string2 = "Расулов";
$string = $string1." ".$string2;
echo "$string <br />";
echo "Салом $string1. <br />";
echo "Имрӯз $string2 меҳмони мо аст.";
?>
Бояд гуфт, ки агар сатр бо нохунакҳои якчанда маҳкам карда шавад, онгоҳ PHP номи тағйирёбандаро бо қиматаш иваз намекунад ва матни дохили сатрро чӣ хеле ки ҳаст ҳамон хел (as is) хориҷ мекунад.
namuna08.php
<?php
$my_string = 'Анвар';
echo '$my_string Расулов <br />';
echo 'Салом $my_string. <br />';
echo 'Имрӯз $my_string меҳмони мо аст. ';
?>
САВОЛҲО БАРОИ МУСТАҲКАМКУНӢ
1. Дар PHP тағйирёбанда чӣ тавр ишорат карда мешавад?
2. Оператори бахшидани қимат бо кадом рамз ишорат карда мешавад?
3. Бахшидани қимат аз рӯи ишора аз бахшидани қимат чӣ фарқ дорад?