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)
–$v
tam ədəd olarsatrue
qaytarıris_infinite($v)
–$v
dəyişəninin qiyməti sonsuzluq –INF
olarsatrue
qaytarıris_nan($v)
–$v
dəyişəninin qiyməti icazə verilməyən ədəd –NAN
olarsatrue
qaytarıris_string($v)
–$v
dəyişəni sətir tipli olarsatrue
qaytarıris_numeric($v)
–$v
də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 olarsatrue
qaytarı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)
–$v
dəyişəninin tipi yalnız və yalnıztrue
və yafalse
olarsatrue
qaytarıris_scalar($v)
–$v
dəyişəninin tipi yuxarıda sadalanan tiplərdən biri, yəni sadə (skalyar) tip olarsatrue
qaytarıris_null($v)
–$v
dəyişəninənull
mənimsədilibsə bu funksiyatrue
qaytarır. Diqqət yetirmək lazımdır ki, belə dəyişənləriis_scalar()
funksiyası ilə yoxladıqda nəticəfalse
olur, çünkinull
skalyar kəmiyyət deyil.is_array($v)
–$v
dəyişəni massiv olarsatrue
qaytarıris_object($v)
–$v
dəyişənində obyektə keçid saxlanırsatrue
qaytarırgettype($v)
–$v
də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 |