PHP/grunnur
Virkjar
[breyta]Stærðfræðivirkjar
[breyta]Þetta dæmi notar fimm grunn virkja sem notaðir eru í stærðfræði. Þetta eru grunnurinn af öllum stærðfræði og strengja-aðgerðum sem framkvæmdar eru í PHP.
Virkjarnir fimm virka á nákvæmlega sama hátt og í C++ og Java
- plús (+)
- mínus (-)
- margföldun (*)
- deiling (/)
- gildistökuvirki (=)
<?php
$x = 25;
$y = 10;
$z = $x + $y;
echo $z;
echo "<br />";
$z = $x / $y;
echo $z;
echo "<br />";
$z = $y * $y * $x;
echo $z - 1250;
echo "<br />";
?>
35<br />2.5<br />1250<br />
35 2.5 1250
echo "<br />";
352.51250
Þetta er vitaskuld ekki niðurstaðan sem við viljum fá.
Það eru tveir valkostir fyrir kóða sem framkvæmir hið gagnstæða við gildistökuvirkjan (=). NULL lykilorðið er notað þegar það þarf að núllstilla gildi breytu. Hins vegar ef það þarf að eyða breytu þá er hægt að nota unset() skipunina.
$variable = null;
or
unset($variable);
Samtengingarvirkin
[breyta]Þetta dæmi sýnir samtengingarvirkjan (.
), sem sameinar tvo strengi og býr til þriðja strenginn sem inniheldur báða strengina. Þetta er svipað og hvernig plúsvirkinn (+
) virkar í C++ C++ Programming (sjá STL), Python, Java og JavaScript.
$string = $string . " " . "All the cool kids are doing it.";
$string
(sem er "PHP is er frábært.") við strenginn " Allir hressu krakkarnir eru að forrita í því." og setur gildið í $string
.
<?php
$string = "PHP is wonderful and great.";
$string = $string . " " . "All the cool kids are doing it.";
echo $string;
?>
PHP is er frábært. Allir hressu krakkarnir eru að forrita í því.
Ný hugtök
[breyta]Virkjar
[breyta]Virki er tákn sem notað er í segð til að vinna með gögn. Grunnvirkjar PHP eru sjö:
=
(gildistaka)+
(samlagning)-
(frádráttur)*
(margföldun)/
(deiling)%
(módulus).
(samtenging)
Til viðbótar má nota virkjana hér að ofan með gildistökuvirkjanum til að búa til eftirfarandi samsettu virkja:
+=
(gildistökusamlagning)-=
(gildistökufrádráttur)*=
(gildistökumargföldun)/=
(gildistökudeiling)%=
(gildistökumódulus).=
(gildistökusamtenging)
Virkjar þessir eru notaðir þegar breytu er bætt við, hún dregin frá, margfölduð við, deilt með öðru gildi o.s.frv og tekur sjálf í kjölfarið hið nýja gildi.
$var = $var + 5;
og
$var += 5;
PHP hefur einnig að geyma virkja sem eykur gildi breytu um einn eða dregur einn frá henni.
++
(eykur um einn)(increment)--
(dregur frá einn)(decrement)
Þetta eru sértilfelli af samlagningar- og frádráttarvirkjunum.
$var = 0;
$var += 1;
echo "Viðbætta gildið er $var.\n";
$var -= 1;
echo "Frádregna gildið er $var.\n";
Viðbætta gildið er 1. Frádregna gildið er 0.
Á meðan þessi leið er fullkomlega lögleg í PHP, þá er hún óþarflega löng, sérstaklega ef litið er á hversu algeng þessi aðgerð er. Þá getum við skipt henni út fyrir ++/-- virkjana.
$var = 3;
$var++;
echo "Viðbætta gildið er $var.\n";
$var--;
echo "Frádregna gildið er $var.\n";
Viðbætta gildið er 4. Frádregna gildið er 3.
Fyrir betra yfirlit yfir PHP virkja, ásamt bitavirkjunum, vísum við í hlekk á handbók PHP hér að neðan.
Forgangur
[breyta]Forgangur virkja segir aðeins til um framkvæmdarröð þeirra, ekki mikilvægi. Þ.e. í hvaða röð þeir eru keyrðir.
- Tengni (e. Associativity)
Þegar margir virkjar með sama forgang koma í röð (hvort sem sami virkinn kemur oft fyrir eða nokkrir mismunandi virkjar) í tiltekinni segð er mikilvægt að íhuga tengni á milli þeirra: hvort um ræðir vinstri tengni (e. left-associative), hægri tengni (e. right-associative) eða ótengni (e. non-associative).
- Dæmi um það þegar tengni skiptir ekki máli
Í sumum tilfellum, sérstaklega þegar sami virkinn birtist oft í röð, skiptir tengnin engu máli hvað útkomu varðar.
Eftirfarandi...
$a = 5*2*3*4; // Jafnt og 120
...með vinstri tengni er jafngilt:
$a = (((5*2)*3)*4); // Jafnt og 120
Með hægri tengni, í þessu tilfelli, fengjum við sömu útkomu:
$a = (5*(2*(3*4))); // Jafnt og 120
- Dæmi þar sem tengni skiptir máli í PHP, en ekki stærðfræðilega séð
Í stærðfræði skiptir ekki máli í hvora áttina þú framkvæmir aðgerðingar ef þær hafa sama forgang.
Sem dæmi, er eftirfarandi...
$a = 5+3-2+8; // Jafnt og 14
...jafngilt eftirfarandi vinstri tengnu segð:
$a = (((5+3)-2)+8); // Jafnt og 14
Ef við skoðum segðina frá siðvenjum í stærðfræðilegu samhengi þá myndi hún einnig gefa sömu niðurstöðu ef hún væri rituð í hægri tengnu samhengi:
$a = (5+(3+(-2+8))); // Jafnt og 14
Þar sem við erum að slást við línulegt mál sem getur ekki breytt "2" í negatíva tölu áður en henni er bætt við "8", þá "3" og loks "5", verður útkoman ekki ákjósanleg. Ef PHP myndi framkvæma eftirfarandi segð á hægri tengnan hátt myndi eftirfarandi (ranga) útkoma birtast:
$a = (5+(3-(2+8))); // Jafnt og -2
Því verðum við að líta á það sem svo að tengni skipti máli og hana ætti að leggja á minnið. Best er þó að nota sviga þar sem við á til að taka allan vafa af því hvernig segðin er lesin. Læsileiki eykst einnig til muna.
Svipuð vandamál eiga sér stað með margföldun og deilingu. Stærðfræðin segir okkur að allar aðliggjandi margföldunar- og deilingarhópar skulu framkvæmdir á teljarastigi og deiling á nefnarastigi. PHP þýðandinn veit þetta því miður ekki hvernig á að framkvæma þetta og notar vinstri tengni þegar svigar eru ekki með þar sem við á
$a = 5 * 4 / 2 * 3; // Jafnt og 30
Þetta er jafngilt vinstri tengni:
$a = (((5 * 4) / 2) * 3); // Jafn og 30
Ef við lítum svo á hvernig hægri tengni myndi vera framkvæmd á línulegan hátt þá sjáum við að við fáum ekki þá útkomu sem við óskum eftir:
$a = (5 * (4 / (2 * 3))); // Jafnt og 3.33333
Nýlína og önnur sértæk tákn
[breyta]Bæði dæmin að neðan nota nýlínu táknin (\n, \r\n or \r, fer eftir stýrikerfi) til að tákna enda á línu og þá byrjun á þeirri næstu.
echo "PHP is flott,\nfrábært,\nog æðislegt.";
PHP is flott, frábært, og æðislegt.
Fallið nl2br() er til þess fallið að breyta nýlínum yfir í <br /> tög.
$string = "This\ntext\nbreaks\nlines.";
$string = nl2br($string);
print $string;
This<br /> text<br /> breaks<br /> lines.
This text breaks lines.
Nýlína og önnur sértæk tákn innihalda ASCII NUL (\0), tab (\t) and return (\r). Aftur má nefna að þessi tákn breyta ekki útliti HTML síðna þar sem það eina sem þau gera er að bæta við "stafabili" í HTML kóðann. Viljir þú hinsvegar birta þessi tákn þarftu að bæta eftirfarandi í kóðann:
&tab; skal nota fyrir tab og <br /> fyrir línubil.
Inntak í PHP
[breyta]PHP hefur föll sem taka við inntaki. Ef þú notar "standard" inntak (t.d. frá skipanalínu), þá er það tekið inn með eftirfarandi grunn inntaksföllum:
$mystring = fgets($stdin);
Eða:
$stdin = fopen('php://stdin', 'r'); // opnar "standard" inntak $line = fgets($stdin); // les inn þar til notandi slær á ENTER
Vefþjónar
[breyta]Á vefþjónum eru gögn send til PHP forrits annað hvort með GET eða POST aðgerðum.
Í GET aðgerð eru færibreyturnar sendar í gegnum veffangið. Til að fá aðgang að þessum færibreytum í kóða er notuð ofurbreytan $_GET['færibreyta']
. Í POST aðgerð er hægt að nálgast gögnin í gegnum ofurbreytuna $_POST['færibreyta']
.
Á almennari nótum er hægt að nota $_REQUEST['færibreyta']
sem inniheldur gögn frá $_GET
, $_POST
, og $_COOKIE ofurbreytunum.
.