- Témaindító
- #1
Php lecke 3.
Változók
Változók
A változók: Olyan adattárolók, amelyben értéket helyezünk el.
(a matematikából jól ismert x=, ami lehet akármi; szám, fQnév, fogalom, sQt logikai érték is (igaz-hamis))
Na, ez nagyon fontos nekünk, mert mindig ezzel lesz a legtöbb teendQnk!! Most azonban nem x, hanem "dollárjel" és a név szolgál az ismeretlen jelzésére.
Változók:
$ és valmilyen szöveg, név - ami lehet betű, szám és aláhúzás karakter (_), (de számmal nem kezdődhet!).
Példák:
$kata,
$valtozoneve
$kutyanak_füle2, vagy egyszerűen csak:
$x (ami kísértetiesen hasonlít az f(x)-re) Nagyon sok nevet változónevet választhatsz, de a logika az meg nem árt neki!
Ne feledkezzünk meg a pontos vesszőkről!
íí‚Âgy adunk értéket a változónak:
[/CODE]$szam1= 5;
$nev= "Adobe Planet";
meg ilyesmi...
<html><body bgcolor=#e9e1d1>
<center><font color=#331111 size=+1>
<?php
$szam1 = 5;
print $szam1;
?>
<?php
$nev = "Adobe Planet";
print $nev;
?>
</font></center>
<FORM NAME=goback method="POST" ENCTYPE="application/
x-www-form-urlencoded">
<INPUT TYPE="button" VALUE="vissza" onClick=
"history.go(-1); return true;">
</FORM>
</body>
</html>[/CODE]
Ha egy 5-öst és alatta egy Adobe Planet -et látsz, akkor OK! Ha nem, akkor bukta...lehet kezdeni előről
DINAMIKUS Víí‚ÂLTOZőK
Itt az informatikában a dinamikus szó már bizonyos értelemben maga is a változást jelenti, azaz: Olyan adattároló, amelyben az adat valamilyen mqűvelet hatására állandóan változhat. (matekban pl: f(x)=x+1)
Jelölése és egy példa:
[/CODE]$nagyon_finom = "Snickers";[/CODE]
ez egyenértékű azzal, hogy
[/CODE]$csoki = "nagyon_finom";
$$csoki = "Snickers";[/CODE]
Változó a változóban - ettől olyan dinamikus
íí‚Ârassuk már ki az $$csoki tartalmát kiváncsiságból:
[/CODE]<html><body bgcolor=#e9e1d1>
<center><font color=#331111 size=+1>
<?php
$nagyon_finom = "Snickers";
$csoki = "nagyon_finom";
print $$csoki;
?>
</font></center>
<FORM NAME=goback method="POST" ENCTYPE="application/
x-www-form-urlencoded">
<INPUT TYPE="button" VALUE="vissza" onClick=
"history.go(-1); return true;">
</FORM>
</body>
</html>[/CODE]
Természetesen azt látjuk, hogy Snickers, nem erre vártunk? Azt meg kell hagyni, hogy "így, ebben a formában" a dinamikus változónak nem sok semmi haszna van, de majd ha ott lesznek a műveletek, akkor majd jó hasznukat vesszük
Itt megjegyezni: Dinamikus változót karakterlánc-konstanssal is létrehozhatunk, ekkor azonban a névként szolgáló karakterláncot kapcsos zárójelbe kell tenni. Erre akkor lesz szükség, ha műveleteket is akarunk végezni vele. (később bővebben...)
[/CODE]${"nagyon_finom"} = "Snickersi";[/CODE]
Ezt is irassuk ki, bár a végeredményt tekintve ugyanazt kell kapnunk, mint az előbb:
[/CODE]<html><body bgcolor=#e9e1d1>
<center><font color=#331111 size=+1>
<?php
$nagyon_finom = "Snickers";
$csoki = "nagyon_finom";
print "${$csoki}";
?>
</font></center>
<FORM NAME=goback method="POST" ENCTYPE="application/
x-www-form-urlencoded">
<INPUT TYPE="button" VALUE="vissza" onClick=
"history.go(-1); return true;">
</FORM>
</body>
</html>[/CODE]
Majd még ide visszatérünk-
Változókra való hivatkozás
A PHP alapértelmezés szerint a következő módon jár el az értékadáskor:
(matematikai hasonlattal): Van két változónk x és y. Ha x-hez hozzárendeljük az y-t, akkor az y-ba az x értéke kerül. (belemásolódik), de ez által az x értéke természetesen nem változik. Ha azonban az x értékét később megváltoztatom, y-ban akkor is az eredeti érték marad. í??gy néz ki a dolog, mintha a hozzárendelési műveletet csupán egyszer tudná végrehajtani a program. Be kell látnunk, hogy ez valójában nem egy művelet volt, hanem a változó értéke szerinti - újabb - értékadás. Próbáljuk csak ki!:
[/CODE]<html><body bgcolor=#e9e1d1>
<center><font color=#331111 size=+1>
<?php
$x = 5;
$y = $x;
//Most megváltoztatom x értékét
$x = 7;
print $y;
//És mégis az 5-öst fogja kiírni
?>
</font></center>
<FORM NAME=goback method="POST" ENCTYPE="application/
x-www-form-urlencoded">
<INPUT TYPE="button" VALUE="vissza" onClick=
"history.go(-1); return true;">
</FORM>
</body>
</html>[/CODE]
A PHP 4-es verziójától kezdve ki lehet ám kényszeríteni, hogy ez az értékadás úgy "viselkedjen", mint egy művelet. Azaz nem x-re hivatkozunk, hanem az x mindenkori változásának eredményére. Azaz, ha x új értéket vesz fel, y mindig ugyanazt veszi fel.
Végül is kényszerítsük csak ki! Egyetlen új karakter a kódsorozatban - & - máris megváltozik a hivatkozás iránya. Nem az értékre, hanem a változóra fogunk hivatkozni:
[/CODE]<html><body bgcolor=#e9e1d1>
<center><font color=#331111 size=+1>
<?php
$x = 5;
$y = &$x;
//Most megváltoztatom x értékét
$x = 77;
print $y;
//Remélhetőleg a 77 szám kerül kiírásra
?>
</font></center>
<FORM NAME=goback method="POST" ENCTYPE="application/
x-www-form-urlencoded">
<INPUT TYPE="button" VALUE="vissza" onClick=
"history.go(-1); return true;">
</FORM>
</body>
</html>[/CODE]
Remélem érthető volt mindenki számára. Lehet kicsit tömény de meg lehet rágni.
A következő leckében az adattipusokkal ismerkedünk majd meg.