Dəyişənin tipinin müəyyən edilməsi
Əvvəlki mövzuda izah edilmiş imkanlardan başqa standarta daxil edilmiş, dəyişənin tipini müəyyən etməyə imkan verən bir neçə funksiya da mövcuddur. Onlardan tez-tez şərti keçid operatorlarında istifadə edilir.
is_int($v)–$vtam ədəd olarsatrueqaytarıris_infinite($v)–$vdəyişəninin qiyməti sonsuzluq –INFolarsatrueqaytarıris_nan($v)–$vdəyişəninin qiyməti icazə verilməyən ədəd –NANolarsatrueqaytarıris_string($v)–$vdəyişəni sətir tipli olarsatrueqaytarıris_numeric($v)–$vdəyişəni ədəd olarsa və ya yalnız rəqəmlər və nöqtədən ibarət sətir tipli dəyişən olarsatrueqaytarır. PHP-də daxilində ədəd olan sətir tipli dəyişənlərlə də sadə riyazi əməllər yerinə yetirmək mümkündür. Buna görə də bu funksiyanıis_integer()vəis_number()funksiyaları ilə birgə istifadə etmək məsləhət görülür.is_bool($v)–$vdəyişəninin tipi yalnız və yalnıztruevə yafalseolarsatrueqaytarıris_scalar($v)–$vdəyişəninin tipi yuxarıda sadalanan tiplərdən biri, yəni sadə (skalyar) tip olarsatrueqaytarıris_null($v)–$vdəyişəninənullmənimsədilibsə bu funksiyatrueqaytarır. Diqqət yetirmək lazımdır ki, belə dəyişənləriis_scalar()funksiyası ilə yoxladıqda nəticəfalseolur, çünkinullskalyar kəmiyyət deyil.is_array($v)–$vdəyişəni massiv olarsatrueqaytarıris_object($v)–$vdəyişənində obyektə keçid saxlanırsatrueqaytarırgettype($v)–$vdəyişəninin tipinə uyğun olaraq “array”, “object”, “integer”, “double”, “string”, “boolean”, “null” və s. və ya tipi məlum deyilsə “unknown type” yazılarını qaytarır. “unknown type” yazısı dəyişənin tipi PHP-yə daxil edilmiş heç bir tipə uyğun olmayan zaman qaytarılır. Belə hal məsələn, PHP dilinin imkanlarını genişləndirmək üçün əlavə modulların qoşulması səbəbi ilə baş verə bilər.
Dəyişənin tipinin dəyişdirilməsi
PHP-də verilmiş dəyişənin tipini digər standart tiplərdən birinə çevirməyə çalışan universal funksiya mövcuddur: settype($var, $type)
Bu funksiya $var dəyişənini $type tipinə uyğunlaşdırmağa çalışır. Burada $type gettype() funksiyasının boolean-dan başqa qaytara biləcəyi qiymətlərdən biridir. settype() işini uğurla yerinə yetirə bilmədikdə false qaytarır. Bu məsələn, $var sətir tipli “ədəd olmayan” dəyişəndirsə settype($var, "integer") false qaytaracaq.
PHP-də settype() funksiyasından başqa dəyişəni digər tipə uyğunlaşdırmaq üçün xüsusi funksiyalar da mövcuddur.
floatval($var)
Bu funksiya $var dəyişənini həqiqi ədədə çevirməyə çalışır. Bu funksiyanın doubleval() kimi başqa adı da var. Hər iki funksiya tamamilə eyni işi görür.
strval($var)
Bu funksiya $var dəyişənini sətir tipinə çevirir.
intval($var[, $base])
Funksiya $var dəyişənini integer tipli dəyişənə çevirir. $base arqumenti nəticənin hansı əsaslı hesablama sisteminə uyğun qaytarılacağını müəyyən edir. Əgər funksiyaya xüsusi olaraq $base arqumenti ötürülməyibsə, nəticə susmaya görə 10-luq say sistemində qaytarılır. Ancaq $base arqumentini məsələn, 8 kimi ötürsək nəticəni 8-lik say sistemində əldə etmiş olacağıq:
echo intval(42); // 42
echo intval(42, 8); // 42
echo intval('42', 8); // 34
Göstərilən funsiyalardan başqa PHP-də tipin digər tipə uyğunlaşdırılmasının C dilindəkinə uyğun sintaksisi də mövcuddur. Bu zaman lazım olan tip dəyişənin qarşısında mötərizədə yazılır:
$value = 3.14; echo (int)$value; // 3 (integer) echo (string)$value; // 3.14 (string) echo (boolean)$value; // 1 (boolean)
Buna bənzər sintaksislərin siyahısı aşağıdakı cədvəldə göstərilmişdir:
| Tipi dəyişmə əməliyyatı | Əməliyyat |
|---|---|
| (int) (integer) |
Tam ədədə çevirmək |
| (bool) (boolean) |
Məntiqi tipə çevirmək |
| (float) (double) (real) |
Həqiqi ədədə çevirmək |
| (string) | Sətir tipinə çevirmək |
| (array) | Massivə çevirmək |
| (object) | Obyektə çevirmək |
| (unset) | null-a çevirmək |
