PHP/grunnur

Úr Wikibókunum
< PHP

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 (=)
Sýnidæmi. Hver stærðfræðisegð hægra megin við gildistökuvirkjan er metin samkvæmt hefðbundnum forgangi virkja. Þegar segðin hefur verið metin þá eru niðurstöðugildið úthlutað á breytuheitið vinstra megin við gildistökuvirkjan.

PHP kóði:

<?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 />";
?>

PHP úttak:

35<br />2.5<br />1250<br />

HTML Render:

35
2.5
1250


Athugaðu: Ef þú ert ekki kunnugur (X)HTML, þá skilur þú ef til vill ekki tilgang kóðans hér að ofan:
echo "<br />";
Tilgangur hans er að búa til HTML línuskil, þannig að vafrinn sýni hverja niðurstöðu á nýrri línu þegar síðan er birt. Ef þessi kóði fyrir línuskil væri ekki þá myndi ofangreindur kóði í staðin skrifa út:
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.


Dæmi:
$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.

Setningin
$string = $string . " " . "All the cool kids are doing it.";
skeytir núverandi gildi $string (sem er "PHP is er frábært.") við strenginn " Allir hressu krakkarnir eru að forrita í því." og setur gildið í $string.


Kóði:

<?php
  $string = "PHP is wonderful and great.";
  $string = $string . " " . "All the cool kids are doing it.";
  echo $string;
?>

Úttak:

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.

Með öðrum orðum eru yrðingarnar
$var = $var + 5;

og

$var += 5;
jafnar


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.

Þessi kóði notar samsettu gildistökuvirkjana með samlagningu og frádrætti til að bæta við og draga frá breytu.

Kóði:

$var = 0;

$var += 1;
echo "Viðbætta gildið er $var.\n";

$var -= 1;
echo "Frádregna gildið er $var.\n";

Úttak:

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.

Þessi kóði notar ++/-- virkjana til að bæta einum við og draga einn frá breytu.

Kóði:

$var = 3;

$var++;
echo "Viðbætta gildið er $var.\n";

$var--;
echo "Frádregna gildið er $var.\n";

Úttak:

Viðbætta gildið er 4.
Frádregna gildið er 3.
{{{4}}}


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.


Nýlína er notuð á eftirfarandi hátt:

Kóði:

echo "PHP is flott,\nfrábært,\nog æðislegt.";

Úttak:

PHP is flott,
frábært,
og æðislegt.


Fallið nl2br() er til þess fallið að breyta nýlínum yfir í <br /> tög.

Strengurinn er keyrður í gegnum fallið sem skilar honum aftur með breyttum tögum:

PHP kóði:

$string = "This\ntext\nbreaks\nlines.";
$string = nl2br($string);
print $string;

PHP úttak:

This<br />
text<br />
breaks<br />
lines.

HTML Render:

This
text
breaks
lines.
{{{5}}}


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:

Lesa inn "standard" inntak:
$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..

Frekari upplýsingar[breyta]