Sətr ifadələri

PHP-də sətrlər əsas obyektlərdən biridir. Əvvəlki mövzularda qeyd edildiyi kimi, sətrlərdə formatlaşdırma simvolları ilə birlikdə mətn və hətta ikilik sistemdə verilənləri saxlamaq mümkündür. Cüt dırnaq və ya apastrof arasında təyin edilmiş sətrlər sintaktik cəhətdən doğru olaraq bir sətrdə başlayıb digər sətrdə bitə bilər:

$multiline = "Bu mətn bir sətrdə başlayır,
ikinci sətrdə,
üçüncü sətrdə davam edir və s.";

Əvvəki mövzularda biz nümunələrdə cüt dırnaq və ya apastrof arasında təsfir edilmiş sətr sabitlərindən istifadə etmişdik. Onlar arasında fərqi izah edək.

Apastrofa alınmış sətr

Əgər sətr apastrof arasında yazılıbsa (məsələn, 'sətr') o, hərfi mənada, yazıldığı kimi qəbul edilir. Sətr daxilində iki halda xüsusi iki işarə ardıcıllığı bu qaydadan kənara çıxır:

\' ardıcıllığı PHP tərəfindən apastrof işarələri arasında yazılmış sətr daxilində bir apastrof işarəsi çapı kimi başa düşülür: 'apastrof \' kimi yazılır';
\\ ardıcıllığı bir tərsinə bölmə – tərsinə sleş – işarəsi kimi başa düşülür və sətrin daxilində bu işarəni çap etməyə imkan verir: 'C:\\my_file.txt'.

Digər başqa simvollar məhz özlərini işarə edirlər və xüsusi hal olaraq qeyd etmək lazımdır ki, $ işarəsinin bu halda heç bir xüsusi mənası olmur. Bu, həmçinin o deməkdir ki, apastrof işarələri daxilində yazılmış sətrlərdə qeyd edilmiş dəyişənlərin identifikatorları interpolyasiya edilmir, yəni onlar qiymətləri ilə əvəz edilmirlər.

Dırnaq arasında sətr

Apastrofla müqayisədə dırnaq işarələri daha “liberaldır”. Belə ki, dırnaq işarələri arasında yazıldıqda bu və ya digər xüsusi simvolu işarə edən xüsusi metasimvollar ardıcıllıqlarının sayı daha çoxdur. Aşağıda onlardan bir neçəsi göstərilib:

\n yeni sətr işarəsidir;
\r karterin geri qaytarılması işarəsi;
\t tabulyasiya simvolu;
\$ xüsusi $ işarəsini təsfir edir. Bu halda $ işarəsindən sonra gələn yazı dəyişən kimi interpolyasiya edilmir;
\" dırnaq işarəsini göstərir;
\\ bir tərsinə sleş işarəsini göstərir;
\xNN onaltılıq sistemdə kodu NN olan işarəni göstərir.

Sətrlərin daxilində dəyişənlər interpolyasiya edilirlər. Məsələn:

$hi = "Hello";
echo "$hi world!";

Bu fraqment aşağıdakı yazını çap edir:

Hello world!

yəni, sətrin daxilində $hi yazısı məhz $hi dəyişəninin qiyməti ilə əvəz edildi. Buna səbəb istənilən dəyişənin qarşısında yazılmış dollar işarəsidir.

Başqa nümunəyə baxaq:

$SOME = "Hell"; // sonunda "o" hərfi yazılmamış "Hello" sözü
echo "$SOMEo world!";

Biz bu halda da nəticəni əvvəlki nümumənin nəticəsi kimi gözləyə bilərik, ancaq bu halda PHP $SOME və ya $SOMEo dəyişənindən məhz hansının nəzərdə tutdulduğunu müəyyən edə bilməyəcək. Bu fraqmenti işə salsaq PHP $SOMEo dəyişəninin müəyyən edilmədiyi haqda məlumat çap edəcək. İstədiyimiz nəticəni əldə etmək üçün nümunə aşağıdakı kimi yazılmalıdır:

$SOME = "Hell"; // sonunda "o" hərfi yazılmamış "Hello" sözü
echo $SOME."o world!"; // bir üsul
echo "{$SOME}o world!"; // növbəti üsul
echo "${SOME}o world!"; // üçüncü üsul

Göründüyü kimi, bu problemi dəf etməyin üç üsulu mövcuddur. İstəkdən asılı olaraq istənilən bir variantı istifadə etmək olar. Ən perspektiv variant kimi isə {$SOME} yazılışını göstərmək lazımdır. Çünki, bu üsulla sətr daxilində dəyişənlərin qiymətləri ilə yanaşı, həmçinin, massiv elementləri və obyektlərin parametrlərini də göstərmək mümkündür:

$action = array(
	"left" => "survive",
	"right" => "kill'em all"
); 
echo "Seçilmiş element: {$action['left']}";

{} konstruksiyası daxilində massivin açar sözünü göstərmək üçün istifadə edilən apastroflara fikir vermək lazımdır. Onlar yazılmasa interpertator xəbərdarlıq göstərəcək. Fiqurlu mötərizələrsiz və apastrofsuz yazılarsa:

echo "Seçilmiş element: $action[left]";

xəbərdarlıq göstərilməyəcək və əvvəlki nümunə ilə eyni sətr çap ediləcək.

Leave a Reply