Autor | Zpráva | ||
---|---|---|---|
Telník Profil * |
#1 · Zasláno: 14. 4. 2023, 14:11:47
Zdravím.
Na ostrém webu (serveru) kde běží PHP 7.4 mi následující konstrukce kódu běží dle očekávání viz výsledek v textu ukázky. Ovšem na mém localhostu XAMPP PHP verze 8.1.12 mi zůstává "b" v objectu "prázdné" NULL - proč se tak děje? class fa { var $b; function fa($a) { $this->b = $a; return $this->b; } } $db = new fa("HALLO WORLD"); echo $db->b; echo "<br>"; echo var_dump($db); die(); PHP 8.1.12 LOCALHOST: "" object(fa)#1 (1) { ["b"]=> NULL } PHP 7.4. WEBSERVER: HALLO WORLD object(fa)#1 (1) { ["b"]=> string(11) "HALLO WORLD" } |
||
Keeehi Profil |
Odpověď je jednoduchá. Jako konstruktor použij metodu
__construct .
Od verze 7.0 je tvůj způsob označen za zastaralý (vyhazuje Deprecated notice) a od veze 8 je to odstraněno. Proto ti to v ospičce nefunguje. Mimochodem, var bys taky neměl používat pro definice atributů třídy. Používej vhodné public/private/protected. Tohle bude asi nějaký hodně starý projekt, co? |
||
Kcko Profil |
var v PHP 5 / 7 / 8 snad už ne.
To se používalo v PHP 4, možná to je tím. Také místo function použít __construct Píšeš kód v PHP 4 a chceš, aby korektně fungoval v 7/8 verzi. |
||
Časová prodleva: 1 rok
|
0