РНР –де айнымалының пайдаланатын контекстіне байланысты орындалу сатысында типі анықталады.
<?php
$foo = 'Bob'; // $foo 'Bob' мәнін алады
$foo = "My name is Mike"; // $foo мәнін өзгерту
$bar = 25; // $bar 25 мәнін алады
$bar = 2 + 2; // $bar 4 мәнін алады
$tmp = $foo; // $tmp $foo мәнін алады
$tmp = &$foo; // $tmp арқылы $foo-ға сілтеме
$foo = "John"; // $foo мәнін өзгерту
echo $tmp; // "John" мәнін экранға шығару
$foo = "Mike"; // $foo мәнін өзгерту
unset($foo); // $foo айнымалысын өшіру
echo $tmp; // Экранға "Mike" сөзін шығару
?>
Бүтін сандарға. integer Z = {..., -2, -1, 0, 1, 2,...} жиынындағы сан
Бүтін сандар ондық сан түрінде, 16-лық немесе 8-дік міндеті емес таңба жазбасымен (- немесе +).
Егер сіз 8-дік нотацияны пайдалансаңыз, бірінші символ 0 басталуы керек,16-лық нотациияда алғашқы символ 0x басталуы керек.
Бүтін сандарға мысал:
$a = 1234; # 10-дық сан
$a = -123; # теріс сан
$a = 0123; # 8-дік сан(10-дықта 83 тең)
$a = 0x1A; # 16-лық сан (10-дықта 26 тең)
integer көлемі платформаға тәуелді, бірақ максимальды мәні 2 миллионға жуықтауы қарапайым (яғни 32-биттік таңбалы) болып табылады. PHP таңбасыз integer қабылдамайды.
Егер сіз integer шекарасының диапозонынан асып кететін сан берсеңіз, ол float түрде қабылданады. Сондай ақ операцияны орындау барысында нәтижесі integer диапозонынан асып кетсе, онда float мәні қайтарылады.
PHP бүтін санды бөлу операциясын қабылдамайды.
1/2 - 0.5 мәнін береді.
Нақты сандар Қалқымалы нүтелі сандар ("float", "double" немесе "real") келесі интаксистерді пайдалану арқылы бейнелене алады:
$a = 1.234; $b = 1.2e3; $c = 7E-10;
Float көлемі платформаға байланысты, бірақ максимальді көлемі~1.8e308 дәлдігімен, жалпы алғанда, 14 ондық санға (яғни 64 биттік формат) сәйкес келеді.
Мысал:
<?php
$a = 1234;
$b = -1.2e3;
$c = 0123; // сегіздік сан 10-дық жүйеде 83
$d = 0x1A; // оналтылық сан 10-дық жүйеде 26
echo "a = $a <br>";
echo "b = $b <br>";
echo "c = $c <br>";
echo "d = $d <br>";
?>Нәтижесі:
a = 1234 b = -1200 c = 83 d = 26
Сөз тіркесі (string) – бұ символдар жиыны. PHP символы бір байт орын алады. PHP тілі Unicode символдарын сүйемелдемейді.
PHP сөз тіркестері өте үлкен болуы мүмүкін. PHP символдары еніне шектеу жоқ десек те болады, сондықтан символдар ұзындығын бақылау қажет емес.
PHP тілінде сөз тіркестері үш тәсілмен анықталынады.
· жалқы тырнақша;· қос тырнақша;· heredoc-синтаксисімен. Жалқы тырнақшалар (апострофтар)
сөз тіркесінің ішінде жалқы тырнақшаны пайдалану үшін, басқа тілдердегі сияқты, оның алдына кері сызық (\) таңбасын қою керек.
РНР кері сызықтан басталатын бірнеше символдар комбинациясы бар.echo 'Бұл қарапайым тіркес';
40. PHP тіліндегі мәліметтер типтері:Boolean, integer,double, float, real типтері. Айнымалыларды инициалдау.
PHP тілінде сегіз түрлі мәліметтер типі бар.
Олардың төртеуі скалярлық тип:
boolean — логикалық;
integer — бүтін сан;
float (double) — жылжымалы нүктелі (нақты) сан;
string — тіркес (сөз тіркесі).
Екі аралас тип:
array — жиым (массив);
object —кластың бір данасы (экземпляры).
Екі арнайы ип:
resource — скриптке қатысты сыртқы мәлімет көзі болып саналатын мәліметке сілтеме (дискідегі файл, жадыдағы сурет, т.б.);
NULL — ешқандай да мәннің болмауы.
Boolean типі.Қарапайым тип. Мәннің ақиқат екендігін көрсетеді – ол TRUE немесе FALSE мәніне тең болады.
\$foo = True; // $foo мәні True
True мен False регистрге тәуелді емес.
NULL арнайы типі (мән алмаған айнымалылар да)
Қалған мәндердің барлығы TRUE болып саналады.
integer типі. Бүтін сандар 10-дық, 16-лық немесе 8-дік санау жүйесінде де берілуі мүмкін. Мысалы:
Z = {..., -2, -1, 0, 1, 2,...} жиымындағы сандар ондық бүтін сандар типінде берілген.
8-дік жүйеде бірінші символ 0-ден (нөл) басталуы керек, 16-лық жүйеде алғашқы символ 0x болуы керек.
$a = 1236; # ондық сан
$a = -321; # теріс сан
$a = 0245; # сегіздік сан(10-дық жүйеде 165-ке тең)
$a = 0x1A; # он алтылық сан (10-дық жүйеде 26-ға тең)
double, float, real типтері-жылжымалы нүктелі сандар келесі синтаксистерді пайдалану арқылы бейнелене алады: $a = 1.234; $b = 1.2e3; $c = 7E-10;
float көлемі платформаға байланысты, бірақ максимал көлемі ~1.8e308 дәлдігімен, жалпы алғанда, 14 ондық санға (яғни 64 биттік формат) сәйкес келеді.
PHP кез келген уақытта өзінде сақтаулы мәліметтерге сәйкес айнымалы типін өзгерте алады.
$var=" Тіркес "; // string типі
$var=7; // енді айнымалы integer типінде
Мысал
<?php
$foo = TRUE; // Логикалық тип
$int = 1234; // Бүтін сан типі
$flt = 1.234; // Жылжымалы нүктелі сан типі
echo "Бұл жай сөз тіркесі";
echo "Бұл: \n жаңа жолға көшіреді";
$a = "ОК"; echo "$a айнымалысы мәтінге қойылды";
echo 'Бұл жай сөз тіркесі';
echo 'Ол айтты: "I\'ll be back"';
echo 'Бұл жаңа жол қоспайды: \n жаңа жол қосады';
$a = "ОК"; echo '$a айнымалысы қойылмайды';
?>
41. PHP тіліндегі мәліметтер типтерімен жұмыс істейтін пайдалы функцияларды қолдану.
isset(айнымалы_аты) - айнымалының бар екені анықталса, true мәнін қайтарады.
unset(айнымалы_аты) - көрсетілген айнымалыны жояды
empty (айнымалы_аты) - айнымалыға белгілі бір мән берілгенін мәлімдейді
gettype(айнымалы_аты) - көрсетілген айнымалының типін береді. Ол integer,
double, float, sfring, boolean мәндерінің бірін қайтарады.
settype(айнымалы_аты,типі) - айнымалыны басқа типке түрлендіреді
var_dump(айнымалы_аты) – айнымалының немесе өрнектің типі мен мәнін қайтарады.
isset (<айнымалы >) функциясы көмегімен айнымалының бар екендігін тексерейік. Мысал үшін біз программамызды бүкіл әлемге емес, тек бізге ғана сәлем беретіндей етіп өзгертейік.
<HTML> <HEAD> <TITLE> Алғашқы программа</TITLE> </HEAD>
<BODY>
<?php
if (isset($name)) {
echo "Hello, $name";
}
else {
echo "Атыңызды енгізіңіз<BR>\n";
echo "<FORM>\n";
echo "<INPUT type=\"text\" name=\"name\">\n";
echo "<INPUT type=\"submit\" value=\"OK\">\n";
echo "</FORM>\n";
}
?>
</BODY> </HTML>
Сонымен қатар, әртүрлі айнымалылар типін тексеретін функциялар бар:
is_bool(айнымалы_аты) - айнымалының типі логикалық болса, true мәнін қайтарады;
is_integer (<айнымалы>) - егер айнымалы бүтін сан болса true мәнін қайтарады;
is_double (<айнымалы>) - егер айнымалы нақты сан болса, true мәнін қайтарады;
is_float (<айнымалы>) - егер айнымалы нақты сан болса true мәнін қайтарады;
is_string(<айнымалы>) - егер айнымалы тіркес болса, true мәнін қайтарады;
is_array (<айнымалы>) - егер айнымалы жиым болса, true мәнін қайтарады;
is_object (<айнымалы >) - егер айнымалы объект болса true мәнін қайтарады;
Ескерту: егер бір өрнектің мәні мен типін тексеру керек болса, var_dump() функциясын пайдалану керек.
Егер тек типін ғана білу қажет болса, gettype() функция-сын пайдалану керек.
Нақты бір типті тексеру үшін gettype() функциясын емес, is_type() функциясын пайдаланған дұрыс. Егер сан integer диапазонынан асып кетсе, ол float болып өзгереді. Бір амалды орындау кезінде де оның нәтижесі integer типінен асып кететін болса, ол да float болып түрленеді.
gettype() функциясына мысал:
<?
$name = 5; Нәтижесі:
$String = gettype($name); integer
echo $String;
?>
Мысал:
$large_number = 2147483647;
var_dump($large_number);
// жауабында: int(2147483647)
$large_number = 2147483648;
var_dump($large_number);
// жауабында: float(2147483648)
// бұл 16-лық сандарға да сәйкес келеді:
var_dump(0x80000000);
// жауабында: float(2147483648)
$million = 1000000;
$large_number = 50000 * $million;
var_dump($large_number);
// жауабында: float(50000000000)
Нәтижесі: