Kóðinn

breyta

Halló heimur

breyta
"Halló heimur er fyrsta forritið sem flestir forritarar byrja á að læra í hvaða forritunarmáli sem er. Hérna er sýnidæmi um hvernig við gerum það í PHP.

  Kóði:

<?php
  echo "Halló heimur!";
  echo "PHP er svo einfalt!";
?>

  Úttak:

Halló heimur!
PHP er svo einfalt!


Þetta er eins einfallt og PHP verður. Þrjár einfaldar línur. Fyrsta línan skilgreinir að allt sem kemur fyrir aftan "<?php" tagið og alveg þangað til "?>" tagið birtist sé PHP kóði. Önnur og þriðja línan prenta út ("eða echo-a" út) tveimur einföldum skilaboðalínum. Næsta dæmi er aðeins flóknara og notar breytur.

Halló heimur með breytum

breyta
Þetta dæmi geymir strenginn "Halló heimur!" í breytu sem við köllum "$strengur". Línurnar hér á eftir sýna hvernig við birtum breytuna "$strengur" á skjánum.

  PHP kóði:

<?php

  // Skilgreinum breytuna 'strengur' og gefum henni gildi.
  // <br> tagið er það sem HTML notar til að skipta um línu
  $strengur = 'Halló heimur!<br>';

  // Þú getur "echo-að" breytuna á svipaðan hátt og við "echo-um" strengi.
  echo $strengur;

  // Þú getur einnig notað skipunina print.
  print $strengur;

  // Eða, ef þú ert kunnug(ur) C er einnig hægt að nota printf.
  printf('%s', $strengur);
?>

  PHP úttak:

Halló heimur!<br>Halló heimur!<br>Halló heimur!<br>

  HTML Render:

Halló heimur!
Halló heimur!
Halló heimur!


Hér fyrir ofan sýni ég tvö úttök. PHP getur skilað HTML sem vafrinn þinn formar og birtir. "PHP Output" boxið er til þess að sýna hvað PHP skilar nákvæmlega. "HTML Render" er nokkurn vegin eins og vafri myndi birta útkomuna. Ekki láta þetta rugla þig, ég er bara að sýna að PHP getur sent frá sér HTML. Við munum fara mun dýpra í þetta síðar.

Ný hugtök

breyta

Breytur

breyta

Breytur eru grunnur allra forritunarmála, þær eru geymslueiningar (í minni) sem geyma gögn. Gögnunum er hægt að breyta og þess vegna er notað nafnið "breytur".

Ef þú hefur fyrri reynslu af einhverju öðru forritunarmáli manstu kannski að í þeim þarftu að skilgreina af hvaða tagi gögnin eru sem breytan á að geyma. Slík mál eru kölluð statically-typed vegna þess að tag breytunnar þarf að vera þekkt áður en þú geymir eitthvað í þeim. Forritunarmál eins og C++ and Java eru "statically-typed". PHP hinsvegar er dynamically-typed vegna þess að tegund breytunnar er tengt gildi hennar. Þú getur s.s. skilgreint breytu fyrir streng, geymt streng í henni og breytt svo gildi hennar yfir í tölu. Til að gera sama hlut í C++ þyrftir þú að gera vörpun á milli tveggja gagnataga og geyma vörpunina í annari breytu.

Allar breytur í PHP byrja á dollaramerkinu ($) og á eftir kemur nafn breytunnar. Nöfnin eru hástafa-háð og því er breytan $wiki allt önnur breyta en $Wiki

Tenging við daglegt líf

breyta

Til að geta borið saman breytur við hluti úr hinu daglega lífi getum við ímyndað okkur að minni tölvunar er eins og geymsluskúr úti í garði. Breyta er þá kassi sem við geymum í skúrnum og innihald kassans væru gögnin í breytunni.

Ef kassinn væri merktur "eldhúsáhöld" og í kassanum væri bolli myndi PHP kóðinn vera:

$eldhusahold = 'bolli';

Ef við færum svo inn í skúrinn, opnuðum kassann sem er merktur "eldhúsáhöld" og skiptum bollanum út fyrir gaffal myndi nýji kóðinn líta svona út:

$eldhusahold = 'gaffall';

Takið sérstaklega eftir = í miðju línunnar og ; í enda hennar. = er gildistökuvirki, eða í okkar lýsingu, leiðbeiningar sem fylgdu kassanum og útskýra hvernig við "setjum bollann í kassann". ; lætur PHP vita að skipanalínunni sé lokið, eða í okkar lýsingu, hættu því sem þú varst að gera og farðu að gera næsta hlut.

Takið einnig eftir að orðið bolli er húpað í einfaldar gæsalappir í staðinn fyrir tvöfaldar. Það að nota tvöfaldar gæsalappir segir PHP þáttaranum að það gæti verið eitthvað fleira sem á að fara í kassann og myndi leita að fleiri eða nánari upplýsingum.

$salernisahhold = 'tannbursti'; 
$eldhusahold = "bolli $salernisahold";
 
//innihald breytunnar $eldusahold er núna '''bolli tannbursti'''

EInfaldar gæsalappir segir PHP þáttaranum að það sé aðeins bolli og það þurfi ekki að leita að neinu utanaðkomandi. Í þessu dæmi erum við ekki að bæta innihaldi salernisahalda-kassanns við eldhúsáhöldin, heldur nafninu $salernishold í staðinn.

$salernisahhold = 'tannbursti';
$eldhusahold = 'bolli $salernisahold';
 
//innihald breytunnar $eldusahold er núna '''bolli $salernisahold'''

Athugið samt að þetta sýnidæmi var sett fram til að þú gætir búið til tengingu við hið daglega líf og er EKKI PHP kóði!

Minni tölvunnar (RAM) = Skúrinn
Breyta = Kassi til að geyma hluti í 
Breytunafn = Merkimiði á kassann (t.d. eldhúsáhöld)
Innihald breytu = Það sem er ofan í kassanum (t.d. bolli)

Athugaðu samt að venjulega myndi maður ekki nota breytuheitið kassi þar sem tengingin er meira myndræn en huglæg. Til dæmis er hægt að líta á fasta og fylki (e. array) sem breytutegundir þegar við erum að horfa á kassamyndlíkinguna þar sem þau eru eins konar geymslugámar en munurinn liggur í hvernig þau geyma innhaldið.

Bretya: kassi sem hægt er að opna á meðan hann er í skúrnum til að skipta um innihald í.

Fasti: kassi sem ekki er hægt að skipta um innihald í. Aðeins er hægt að skoða innihaldið á meðan hann er í skúrnum en það er "'aldrei'" hægt að skipta um innihald.

Fylki: kassi sem geymir 1 eða fleiri kassa í aðalkassanum. Til að flækja málin aðeins meira fyrir byrjendur þá getur hver aukakassi innhaldið aðra kassa líka. Í eldhúsáhaldakassanum höfum við nú tvo kassa, hreinan bolla

$eldhusahold["hreinn_bolli"] = 'hreinn bolli';

og skítugan bolla

$eldhusahold["skitugur_bolli"] = 'skítugur bolli';

Meira um breytur í PHP handbókinni.

breyta

Print er lykilinn að því að fá eitthvað úttak. Það sendir hvað það sem er hjúpað gæsalöppum (eða svigum) í úttakið (oft vafragluggi). echo er svipuð skipun, stóri munurinn er að print getur sagt til um hvort skipunin tókst eða ekki.

Þegar notað með gæsalöppum eins og:
print "Halló heimur!";


Textinn sem hjúpaður er gæsalöppum er meðhöndlaður sem strengur og er hægt að bæta honum við annan streng með samsetningavirkjanum (e.concatenation operator) sem og öllum öðrum föllum sem skila af sér streng.

Þessi tvo dæmi skila af sér sömi niðurstöðu.
print "Halló heimur!";

og

print "Halló" . ", " . "heimur!";


Punkturinn tengir saman tvo strengi. Í öðrum forritunarmálum er samsetningarvirkinn plús merkið (+) og punkturinn er venjulega notaður til að kalla í föll í klösum.

Það getur einnig verið gott að vita að undir flestum kringumstæðum er hægt að skipta út print og echo nokkuð jafnhendis. Munurinn er eingöngu að print er fall sem skilar gildi þannig að hægt er að fá úr því skorið hvort print skipunin tókst eða ekki á meðan að echo gerir bara ráð fyrir því. Það er því ekkert hægt að gera ef echo klikkar.


Eftirfarandi dæmi hafa sama úttak.
echo "Halló heimur!";

and

echo "Halló" . ", " . "heimur!";


Ég mun nota echo í flestum köflum þessarar bókar þar sem það er skipunin sem er almennt oftar notuð.

Ég vil samt taka það fram að þrátt fyrir að hægt sé að nota echo og print á sama hátt og föll eru þau í raun málfastar og hægt að nota án þess að setja sviga utan um. Næstum öll önnur föll krefjast þess að svigar séu settir utan um færibreyturnar sem fara inn í föllin, og tóman sviga ef engar færibreytur eiga að fara með.

Ytri tenglar

breyta


Grunnþættir   (21 Jan 2013)