TCH (statz) | #1, Főfasz (10466) |
1044 | #5669 | ^ | Idézet | Sat, 03 Dec 2022 20:41:44 +01 |
84.236.*.* | *.pool.digikabel.hu |
PHP Gigasuxx rovat: include.php: <?php $ize = 'KECSKE'; ?>run.php: <?php function kecske() { require_once 'include.php'; echo $ize . "\n"; } kecske(); kecske(); ?>Végeredmény: KECSKE PHP Notice: Undefined variable: ize in /tmp/run.php on line 6 Notice: Undefined variable: ize in /tmp/run.php on line 6A require_once által behúzott file "behúzottsága" függvényen belül végrehajtva is a global scope-ba kerül, ugyanakkor a behúzott file-ban található változók viszont a local scope-ba. Gratulálunk... Itt vagy az lenne logikus, hogy amit függvényben húzol be, azt másutt be tudod húzni megint, vagy az, hogy oké, nem lehet, de akkor a változói global scope-ba mennek és global-lal éred el őket. De ez a kevert fos megoldás... Sz*rk: Viszont, ha a kecske függvénybe berakjuk, hogy global $ize és mi magunk kényszerítjük global scope-ba a változót, akkor működik. Workaround, de legalább működik. |