- iPhone topik
- Telekom mobilszolgáltatások
- Motorola Moto G72 - a titkos favorit
- Google Pixel topik
- Samsung Galaxy S23 Ultra - non plus ultra
- Yettel topik
- Íme, a One UI 8.5 újításai
- Minden a BlackBerry telefonokról és rendszerről
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- Apple iPhone 17 Pro Max – fennsík
Új hozzászólás Aktív témák
-
Lacc
aktív tag
válasz
tacsko833 #19142 üzenetére
Doink, jól mondta. Sőt, Doink jól mutatta
${$valami}
, ezt a{}
formátumot érdemes megjegyezni (lásd lentebb).
Dinamikus változóval nem kell ennyire foglalkozni, de gyakorlással felfogható.Dinamikus változó szemlélete, inkább a Reflection témakörében fordul elő. Ha nem nagyon érdekel az Architekt, akkor valszeg sosem fogsz vele találkozni. Viszont hasznos is tud lenni a dinamikus elérés
Lásd: Dinamikusan tudsz a Foo-nak létrehozni property-t
class Foo{
public function createProperty($name, $value){
$this->{$name} = $value;
}
}
$foo = new Foo();
$foo->createProperty('hello', 'something');
print $foo->hello //somethingBár most nézve a PHP doc-ot, az első hivatalos példa, pont a variable property. A felhasználók példájánál már ott van a 3. és 4. példa is.
Ez a negyedik kivételesen jó példa:class Foo {
public function hello() {
echo 'Hello world!';
}
}
$my_foo = 'Foo';
$a = new $my_foo();
$a->hello(); //prints 'Hello world!'Ebből is látszik, hogy egy osztály objektumát az osztály neve alapján hogyan lehet létrehozni, itt az osztály neve egy sima string érték a $my_foo változóban. Ezzel kapcsolatos kérdéssel már sok helyen találkoztam, és én is csináltam, mert egyszerű, átláthatóbb és a PHP haver ebben.
Reflection-nél pedig a példában a foreach-es részt nézném át.
-
Doink
aktív tag
válasz
tacsko833 #19141 üzenetére
A $$tarolo ugyan az mintha azt írnád hogy $felhasznalo HA $tarolo = 'felhasznalo'.
Becsületesen kiírva ez történik:
${$tarolo} => ${'felhasznalo'} => $felhasznaloSzóval ha az van írva a kódba hogy $$tarolo = "Anna" akkor valójában $felhasznalo = "Anna" hajtódik végre
HA a $tarolo értéke 'felhasznalo'.Dinamikus változóneveknek érdemes elkerülni mert átláthatatlan kódot eredményez és nehéz példát mondani arra amikor értelme van normális adatszerkezetek használata helyett.
-
disy68
aktív tag
válasz
tacsko833 #19139 üzenetére
A $valami egy változó, ami futás során kerük kiértékelésre.
A $$valtozo szintén egy változó, aminek a neve a $valtozo értéke. A php feldolgozó addig oldja fel változóként a $ utáni szoveget, amíg el nem jut az első $ jelig, az így kapott eredmény egy változó lesz (függően a helyétől a kifejezésben deklaráció, ha eddig nem létezett, hivatkozás vagy érték).Egy szemléltető példa a lentebb linkelt php manual hozzászólásaiból:
<?php
//You can even add more Dollar Signs
$Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hello = "World";
$a = "Hello";
$a; //Returns Hello
$$a; //Returns World
$$$a; //Returns Foo
$$$$a; //Returns Bar
$$$$$a; //Returns a
$$$$$$a; //Returns Hello
$$$$$$$a; //Returns World
//... and so on ...//Miért? Mert a php megengedi
bővebben
És persze erről jó tudni, de szerintem ilyesmi mágiákat nem igazán kifizetődő használni, mert nem túl átlátható.
-
disy68
aktív tag
válasz
tacsko833 #19137 üzenetére
Dinamikus változók, az én ízlésemnek kicsit túl dinamikus
Szóval:
1. A $tarolo változó értéke lesz: "felhasznalo"$tarolo = "felhasznalo";
2. A $felhasznalo változó értéke lesz: "Anna" ($$tarolo ->$felhasznalo => "Anna")$$tarolo = "Anna";
És a fenti deklarációk esetében az alábbiak ekvilalensek:
$$tarolo === ${$tarolo} === ${'felhasznalo'} === $felhasznalo
És lehet ezt még tetőzni $$$tarolo, stb..
Új hozzászólás Aktív témák
- AMD Ryzen 7 7700X - Új, 1 év garancia - Eladó!
- Samsung Galaxy Z Fold6 ,Navy ,120 Hz AMOLED dupla kijelző, Snapdragon 8 Gen 3,12/512 GB,2027. 07. 11
- Honor Magic5 Pro Green LTPO 120 Hz, 50 MP triplakamera, 66 W gyorstöltés 12/512 GB
- Sigma 15mm f/2.8 EX DG Fisheye (Canon bajonett)
- T14s Gen3 27% 14" FHD+ IPS érintő i7-1270P 16GB 512GB NVMe ujjlolv IR kam gar
- HIBÁTLAN iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3287
- BESZÁMÍTÁS! Intel Core i7 4790 4 mag 8 szál processzor garanciával hibátlan működéssel
- LG 27CN650N-6A - Felhő Monitor - 1920x1080 FHD - 75Hz 5ms - USB Type-C - Quad Core - BT + WiFi
- Ventillátorok és tápkábel modding kitűnő árakon! Most extra 10% kedvezmény!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest