Wednesday, November 21, 2012

ՏԻՊԵՐ





ՏԻՊԵՐ



PHP լեզվում կիրառական են տիպերի հետևյալ տեսակները.

boolean -բուլեան, կարող է ստանալ ճիշտ կամ սխալ արժեքները
integer - ամբողջ թիվ
float (կամ double) - կրկնակի կամ լողացող թիվ, այսինքն կոտորակային, օրինակ` 2,3435
string -տեքստային
array
object
resource
NULL
callable

Կիրառական են նաև կեղծ փոփոխականներ

mixed
number
callback

Ինչպես գիտենք php լեզվի առանձնահատկություններից մեկը փոփոխականները չհայտարարելն է:
Օգտակար են var_dump(), gettype(), is_type ֆունկցիաները, որոնք կարող են մեզ ասել կոնկրետ տվյալ փոփոխականի տիպի մասին: Իսկ settype() -ի միջոցով կարելի է փոխել փոփոխականի տիպը:

ԲՈՒԼԵԱՆ  boolean

Սա ցույց է տալիս ասույթի ճիշտ կամ սխալ լինելը: Այն կարող է ընդունել TRUE (կամ true)   կամ FALSE (կամ false) արժեքները:

Այժմ դիտարկենք այս սկրիպտը
<?php
$a=277;
$b=21;
if (($a<$b)==true){
echo "a-ն փոքր է b-ից";
}
if (($a<$b)==false){
echo "b-ն փոքր է a-ից";
}
?>
Եթե գործում է այս անհավասարությունը a>b, ապա բրաուզերի պատուհանին  կգրվի b-ն փոքր է a-ից, իսկ եթե a<b, ապա կգրվի a-ն փոքր է b-ից: Փոփոխականների անհավասարությունը ստուգվում է $a<$b)==true և $a<$b)==false պայմանների միջոցով: Փորձեք սկրիպտը փոփոխելով a և b փոփոխականների արժեքները:
Փոփոխականը բուլեան դարձնելու համար կիրառում են
bool կամ boolean: Օրինակ
<?php
echo ((bool) 1);
?>
Էկրանին կերևա 1, սա համապատասխանում է բուլեան true-ին:
<?php
echo ((bool) "");
?>
Էկրանին ոչինչ չի երևա, սա համապատասխանում է բուլեան false-ին:
Փորձել հետևյալ տարբերակները.
<?php
echo ((bool) "");
echo ((bool) "  ");
echo ((bool) "text");
echo ((bool) -1);   
echo ((bool) 12);     
echo ((bool) 1.23345);
echo ((bool) array(n));
echo ((bool) array());
?>
ԱՄԲՈՂՋ ԹՎԵՐ    integer
Ամբողջ թվերի դասը իր մեջ ներառում է բոլոր բացասական և դրական ամբողջ թվերը, նաև զրոն: Ամբող թվերը կարող են ներկայացվել 10-ական, 16-ական, 8-ական, 2-ական համակարգերով:
16-ական համակարգի դեպքում թվից առաջ կցագրում ենք 0x:
10-ական համակարգի դեպքում թիվը գրում ենք նույնությամբ:
8-ական համակարգի դեպքում թվից առաջ կցագրում ենք 0:
2-ական համակարգի դեպքում թվից առաջ կցագրում ենք 0b (PHP 5.4.0-ից սկսած):
Այժմ փորձենք հետևյալ օրնակները մեկ սկրիպտում
<?php
echo 604 ;
echo "\v";
echo -93;
echo "\v";
echo 073;
echo "\v";
echo 0x8A;
echo "\v";
echo 0;
?>
Ամբողջ թվի թվանշանների քանակը պայմանավորված է համակարգի պլատֆորմի բիթային բնույթով, բացի այդ այն կարելի է նաև սահմանել PHP_INT_SIZE  և     PHP_INT_MAX  միջոցով:
Թվերի հետ աշխատելիս հաճախ անհրաժեշտ է լինում օգտվել (round), intval(), (int) կամ  (integer) ֆունկցիաներից:
ԼՈՂԱՑՈՂ ԿԵՏՈՎ ԹՎԵՐ  float
Այս տիպի փոփխականներին կոչում են  float, double նաև real: Դրանց գրության ձևերից են.
<?php
$a = 2.14;
$b = 3E-9;
$c = 9.7e3;
?>
Թվերի հետ գործողությունների ժամանակ հաճախ անհրաժեշտություն է առաջանում օգտվել rund() ֆունկցիայից, որի միջոցով թվերը կլորացնում ենք: Օրինակ
<?php
echo round(14.7);
echo "\v";
echo round(15.5);
echo "\v";
echo round(33.3);
echo "\v";
echo round(7.11583, 3);
echo "\v";
echo round(1.0045, 2);
echo "\v";
echo round(6.00663, 3);
?>
Փակագծերում գրված առաջին թիվը տրված փոփոխականն է, իսկ երկրորդ թիվը ցույց է տալիս, թե մինչև որ կարգային թվանշանը պետք է կլորացվի:
Բայց պետք է լավ իմանալ, որ մեծ թվերի հետ որոշակի գործողություններ  կատարելիս php-ն կարող է տալ սխալներ  կամ չենթադրվող արդյունքներ, իմ կարծիքով php-ի կիրառումը մաթեմատիկական հաշվարկների նպատակով այնքան էլ նպատակահարմար չէ, ՀԻՇԵՆՔ PHP-Ի ԱՌԱՔԵԼՈՒԹՅՈՒՆԸ ՎԵԲ ԷՋԵՐԻՆ ԾԱՌԱՅՈՒԹՅՈՒՆ ՄԱՏՈՒՑԵԼՆ Է:
string
Տող կամ տեքստ ասելով պետք է հասկանալ սիմվոլների ամբողջություն: php-ի դեպքում չի գործում unicod կոդավորումը: Տեքստի ծավալը կարող է լինել ընդհուպ մինչև 2 գեգաբայթ:  Տողաին կամ տեքստային փոփոխականը կամ ինֆորմացիան կարելի է ներկայացնել ' և', " և", <<<, <<<'TOX' և TOX նշանների միջև:
Մեկ և երկու ապաթարցների միջև կա մի կարևոր տարբերություն: Եթե ուզում ենք, որ սիմվոլների ամբողջությունը համարվի տողային, այդ թվում նաև ներմուծված փոփոխականները, ապա պետք է օգտագործել '  ' նշանները: Իսկ եթե փոփոխականը ներառված է "  " նշանների միջև, ապա ծրագրի կողմից կմեկնաբանվի դրա արժեքը:
Այժմ համեմատել այս երկու կոդերը
<?php
$aaaaaa=5;
echo '$aaaaaa';
?>
<?php
$aaaaaa=5;
echo "$aaaaaa";
?>
Այսպիսով ' և " նշանները նույնը չեն, պետք է դրանք կիրառել ճիշտ:
Բացի այս  "
 "նշանները կարող են ներառել նաև ծառայողական նշաններ \n, \r, \t, \\, \$, \"
Տողային կամ տեքստային մեծածավալ ինֆորմացիայի համար նպատակահարմար է  <<< (here doc-ի) օգտագործումը: Տեքստը կարող է լինել բավականին ծավալուն, <<< նշաններից հետո կարող ենք գրել ցանկացած գրություն օրինակ TOX, բայց տեքստից հետո ՆՈՐ ՏՈՂԻ սկզբին պետք է նորից գրել նույն TOX բառը: Այժմ փորձեք այս կոդը
<?php
$aaa = <<
Սա ի օրինակ է, երբ դուք կարող եք օգտագործել հեռեդոկը, այսինքն <<< նշանների կոբինացիան բավականին մեծածավալ տեքստ ներմուծելու համար:
TOX;

echo $aaa;
?>
Մենք կարող ենք նաև կոնկրետ գտնել և աշխատել տողային փոփոխականի այսինչերորդ սիմվորը կամ տառը: Սա դիտարկենք օրինակի վրա
<?php
$tox_tiv = "Sa bavakanin hetakrkir orinak e:";
$tar = $tox_tiv[7];
echo $tar;
?>
$tox_tiv փոփոխականով ներմուծել ենք Sa bavakanin hetakrkir orinak e: տողային կամ տեքստային արժեքը: $tox_tiv[7] փոփոխականով որոշում ենք, թե փոփոխականի 7-րդ էլեմեմտը  կոնկրետ որ սիմվոլն է:
Այս դեպքում բրաուզերի էկրանին կստանանք k , սա նշանակում է, որ տողի յոթերորդ էլեմենտը к տառն է (բացատը չի հաշվվում): Նույնը ավելի մանրամասն կուսումնասիրենք մասիվներ բաժնում:

ՄԱՍԻՎՆԵՐ  (ԶԱՆԳՎԱԾՆԵՐ)   array

Մասիվները միատիպ էլեմենտների ցուցակ են: Առանձնացնում ենք մասիվների երկու տեսակներ ըստ էլեմենտների նույնականացման: Առաջին դեպքում էլեմենտը որոշվում է ըստ հաջորդականության ինդեքսի, իսկ երկրորդ դեպքում  մասիվներն ունեն ասոցիատիվ բնույթ, և կոնկրետ էլեմենտին անդրադառնալու համար պետք է կիրառել բանալիներ, տրամաբանական կապերով: Բացի այդ մասիվները լինում են միաչափ և բազմաչափ:
Միաչափ ինդեքսավորված մասիվները իրենցից ներկայացնում են էլեմենտների բազմություն, որոնց ինդեքսները ամբողջական թվեր են և ցույց են տալիս տվյալ կոնկրետ էլեմենտի տեղը: Գրության ձևը հետևյալն է $aaa[index 5]; այստեղ $ նշանը ցույց է տալիս, որ այն փոփոխական է, իսկ aaa իր անունն է, իսկ [5] նշանների մեջ գրված թիվը ցույց է տալիս, որ գործ ունենք կոնկրետ 5-րդ էլեմենտի հետ:
Այժմ ստեղծենք մի մասիվ
$tvyal[0] = "anun";
$tvyal[1] = "azganun";
$tvyal[2] = "hayranun";
$tvyal[3] = "azgutyun";
$tvyal[4] = "ser";
Կարևոր է այն հանգամանքը, որ ինդեքսը սկսվում է 0-ից և ոչ թե 1 -ից:
Եվ եթե գրենք echo $tvyal[3] ապա բրաուզերը կարտահանի azgutyun արտահայտությունը: Այժմ փորձեք այս կոդը php խմբարիչով  կամ սերվերի վրա:
<?php
$tvyal[0] = "anun";
$tvyal[1] = "azganun";
$tvyal[2] = "hayranun";
$tvyal[3] = "azgutyun";
$tvyal[4] = "ser";
echo $tvyal[3];
?>
Բայց սովորաբար մասիվներ ստեղծելու համար կիրառում են
array () ֆունկցիան: Պարզապես պետք է փակագծերի մեջ կրկնակի ապաթարցների մեջ գրառել բոլոր էլեմենտները: Կունենանք այս պատկերը
$tvyal = аrrау("anun", "azganun", "hayranun","azgutyun", "ser" );
Եթե գրենք echo $tvyal[3] հրամանը, ապա կստանանք նույն պատկերը, այժմ փորձենք դա
<?php
$tvyal = array("anun", "azganun", "hayranun","azgutyun", "ser" );
echo $tvyal[3];
?>
Մասիվին կարող ենք ավելացնել նոր էլեմենտներ չգրելով փակագծերում ինդեքսի թիվ, օրինակ
$tvyal[] = "tarik";
$tvyal[] = "heraxos";                    և այլն:
Կարող ենք մասիվը ներկայացնել այս պես
array (
key=> value,
key1=> value1,
.........................
)
key բառացիորեն նշանակում է բանալի, այն ինդեքս է, այն կարող է լինել տարբեր տիպի օրինակ string կամ integer կամ մեկ այլ: value բառացիորեն նշանակում է արժեք, սա էլ կարող է լինել տարբեր տիպի: Իսկ => գրությամբ տվյալ ինդեքսին տալիս ենք արժեք: Դիտարկենք կոնկրետ օրինկի վրա
<?php
$tvyal = array(
anun=> 'Aram',
azganun=> 'Manukyan',
hayranun=>'Ashoti'
);
?>
Այս օրինակում tvyal փոփոխականը իր բնույթով մասիվ է, այն ունի երեք հատ key կամ ինդեքսներ, որոնցից յուրաքանչյուրին համապատասխանում է մեկ տողային արժեք: Եթե գրելու լինենք ինդեքսներից ցանկացած մեկը, ապա կունենանք դրան համապատասխան արժեքը:
<?php
$tvyal = array(
anun=> 'Aram',
azganun=> 'Manukyan',
hayranun=>'Ashoti'
);
echo $tvyal[anun];
?>
Վերը բերված օրինակի դեպքում էկրանին կունենանք Aram գրությունը, իսկ եթե $tvyal[anun] մեջ anun ինդեքսի փոխարեն գրենք azganun, ապա կունենանք Manukyan գրությունը:
Մասիվների միջոցով կարող ենք կազմել բավականին հետաքրքիր կիրառական կոդեր օրինակ բառարաններ, ինտերակտիվ հարց ու պատասխանի շաբլոններ և այլն, մասիվի ինդեքսը դարձնելով փոփոխական, կարող ենք փոփոխականի փոփոխմամբ ստանալ տարբեր արժեքներ: Սա դիտարկենք հետևյալ օրինակի վրա
<?php
$aa=1;
$tvyal = array(1=>'Aram Ashoti Manukyan', 'Karen Gori Grigoryan', 'Manvel Anaki Mkrtchyan','Mukuch Mukuchi Mukuchyan')
echo $tvyal[$aa];
?>
Քանի որ $aa=1, մենք կունենանք Aram Ashoti Manukyan, իսկ եթե $aa փոփոխականին տանք 2 արժեք, այսինքն $aa=2, ապա կունենանք Karen Gori Grigoryan: Ուշադրություն դարձրեք 1=> գրությանը, եթե սա չգրենք, ապա ինդեքսավորումը կսկսվի ոչ թե 1-ից, այլ 0-ից: Մասիվի մեջ կարող ենք տեղադրել մասիվներ:
Ինչպես նախապես սահմանել էինք, մասիվները կարող են լինել բազմաչափ, այսինքն կարող ենք մեկի փոխարեն կիրառել միաժամանակ երկու և ավելի ինդեքսներ:
<?php
#$aa=2;
$tvyal = array(1=>
array(1=>'Armen', 'Harut','Karen','Mher'),
array(1=>'Mane','Ani','Manush','Lia')
);
echo ($tvyal[2][2]);
?>
Այս օրինակում առաջին ինդեքսը ցույց է տալիս առաջին կամ երկրորդ շարքը, իսկ երկրորդ ինդեքսը ցույց է տալիս առաջին ինդեքսին համապատասխանող շարքի առաջին, կամ երկրորդ, կամ երրորդ, կամ չորրորդ էլեմենտը: [2][2] ինդեքսի դեպքում կգրվի Ani անունը: Նույն սկզբունքով կարող ենք կազմել եռաինդեքս, քառաինդեքս և այդպես շարունակ բազմաինդեքս մասիվներ:
Մասիվների հետ աշխատելու մեծ հնարավորություններ է տալիս
foreach ցիկլի կիրառումը: Այն ունի այսպիսի սինտաքսիս
foreach ($array as $value)
   
statement
կամ
foreach (array as [$key1 =>] $value1)
{
  
statements;
}
foreach սահմանում է պայման, երբ մասիվի ինդեքսը  key1-է և արժեքը հավասար է value1-ի, ապա կգործի statements-ը: foreach հատկություններն ուսումնասիրենք օրինակների վրա: Օրինակ 1
<?php
$array = array('a','b','c','d','e','f');
foreach ( $array as $letter =>$key )
{
echo $letter;
}
?>
Առաջին օրինակում ստեղծել ենք մասիվ, որը պարունակում է a,b,c,d,e,f տարրերը:  foreach միջոցով $array մասիվը վերափոխել ենք $letter մասիվի, իսկ  =>$key գրությունը ցույց է տալիս, որ նոր մասիվը, այսինքն $letter -ը, իր մեջ պարունակելու է $array մասիվի ինդեքսները: $key գրությունում կարող ենք key փոխարեն գրել banali , դա բնավ չի անդրադառնա կոդի աշխատանքի վրա: Պետք է հասկանալ, որ $letter =>$key գրությունը ցույց է տալիս, որ նոր մասիվի տարրերը իրենցից ներկայացնելու են  $array մասիվի ինդեքսները: echo միջոցով բրաուզերի պատուհանին կհայտնվի 012345 գրությունը: Պետք է իմանալ, որ եթե մասիվի ինդեքսները նախապես հայտարարված չեն, ապա ինքնաբերաբար որպես ինդեքս ընդունվում են 0 1 2 3 4 ... integer թվերը:
Օրինակ 2
<?php
$array = array('a','b','c','d','e','f');
foreach ( $array as $letter )
{
echo $letter;
}
?>
Այս դեպքում կհայտնվի abcdef գրությունը, այսինքն $letter մասիվը իր մեջ կներառի $array մասիվի տարրերը:
Օրինակ 3
<?
  
$anun = array(1=>"Aram", "Ashot", "Anna", "Alla");
  
foreach($anun as $index => $value)
  
{
     
echo("$index >>> $value
"
);
  
}
?>
Այս դեպքում կունենանք այս պատկերը
1 >>> Aram
2 >>> Ashot
3 >>> Anna
4 >>> Alla
Մեր սկզբնական մասիվը $anun-ն է, որի էլեմենտներն են Aram, Ashot, Anna, Alla, հիշենք որ " " նշանները գրում ենք տողային (տեքստային) փոփոխականների համար: 1=> գրության շնորհիվ որպես սկզբնական ինդեքս կընդունվի ոչ թե 0-ն սովորականի պես, այլ կսկսվի 1-ից:  foreach -ի շնորհիվ $anun մասիվը վերափոխում ենք: $index-ը ցույց է տալիս նոր մասիվի ինդեքսը, իսկ $value -ն համապատասխան արժեքը:
<br> տեգի միջոցով յուրաքանչյուրը կգրվի առանձին տողերի վրա:





=======================================================



ՕԲՅԵԿՏՆԵՐ  ԿԼԱՍԵՐ (ԴԱՍԵՐ)  CLASS



PHP-ն օբյեկտային կողմորոշմամբ ծրագրավորման լեզու է: Սա լեզվին տալիս ինքնատիպ ֆունկցիոնալություն և կառուցվածքայնություն: Այս հատկության շնորհիվ կարող ենք ստեղծել օբյեկտներ: Մոդուլային կառուցվածքի շնորհիվ կարելի է ծրագրի ներսում տարբեր մասերում անել ամենատարբեր փոփոխությունները: Իսկ ինկապսուլյացիայի շնորհիվ զանազան էլեմենտներ կարելի է ներառել մեծ օբյեկտների մեջ խնայելով թե ժամանակը, և թե կոդերի քանակը:  Դասերը կամ ինչպես սովորաբար կոչում են կլասերը օբյեկտային կողմնորոշմամբ ծրագրավորման հենքն են կազմում: Դրանք կարծես տրամաբանական որոշակի  կապերով կապված տիպերի (փոփոխականների) և ֆունկցիաների կառուցվածքային ամբողջություններ են: Դասերը ինքնատիպ շաբլոններ են, ըստ որոնց կազմվում են օրինակներ, որոնք էլ կիրառվում են ծրագրի մեջ: Հենց այդ օրինակ-շաբլոններին կոչում են օբյեկտ, այսպիսով օբյեկտի հիմքում ընկած է դասը: Ինչ-որ առումով դասը կարելի է համարել տիպ, իսկ օբյեկտը փոփոխական:



Ինչպես պետք է հայտարարել դասը:



Դասի ներմուծումը պետք է սկսել class բառով: class բառից հետո գրում են դասի անվանումը, որը սովորաբար սկսում են մեծատառով, այն կարելի է անվանել ցանկացած բառով և ցանկացած տեսքով, բացառությամբ php -ի key word-ները: Ապա պետք է հայտարարել դասի ատրիբուտները: Ատրիբուտների հայտարարումը արվում է var բանալի բառով: Ատրիբուտները կարող են վերաբերել և նաև լինել ցանկացած բնույթի տիպ, ապա պետք է հայտարարել մեթոդը կամ ֆունկցիան:

Օրինակ



class dasi_anun {
var $attribute1;
var $attribute2;
.........................
function im_funkcia1() {
...
}
...
function im_funkcia2() {
...
}
}

Դասի ներսում եթե ուզում ենք մեթոդի (ֆունկցիայի) ներսի ատրիբուտին դիմել օգտագործում ենք $this փոփոխականը:





No comments:

Post a Comment

Note: Only a member of this blog may post a comment.