|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Dec 2008
Messaggi: 96
|
[PHP]: Dubbi sulla definizione degli attributi di una classe
Ciao a tutti, sto da poco imparando il php e sono arrivato alla definizione delle classi,
sto utilizzando http://phpfiddle.org per i miei esercizi. Ho un dubbio però su questo codice: Codice:
<?php class Pippo{ public $a = NULL; function __construct($a){ $this->a = $a; } } class Geppo{ function __construct($a){ $this->a = $a; } } $pippo = new Pippo('Sono la stringa di pippo'); echo $pippo->a; $geppo = new Geppo('Sono la stringa di geppo'); echo '<br>'.$geppo->a; ?> Sono la stringa di pippo Sono la stringa di geppo però nel caso della classe geppo, siccome l'attributo di classe $a non è stato dichiarato, come mai posso comunque accederlo e stamparlo, e come mai non ho un errore nella porzione di codice del costruttore quando tento di inizializzarlo con la stringa? Grazie mille per le vostre risposte! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2001
Città: MI
Messaggi: 1801
|
ciao, odio questi esercizi sulle classi, credo non siano mai serviti ad una geppa
![]() ti frega perchè con $geppo = new Geppo('Sono la stringa di geppo'); passi un parametro function __construct($a){ $this->a = $a; } ciao
__________________
italiarec.com forum italiano di registrazione e mixaggio estilocaballero.es ssdoptimizer.eu cambioeuro.eu doflamingo.com studiolegalesangalli.com stilegentiluomo.it italiarec.com italiarec.it arteincasa.it |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Dec 2008
Messaggi: 96
|
Mhh...non ho capito bene...passo un parametro è vero, ma quando scrivo nella classe Geppo all'interno del costruttore "$this->a" , mi riferisco ad un attributo che in teoria non dovrebbe esistere perchè non l'ho dichiarato...quindi mi sta sfuggendo qualcosa perchè non capisco come mai funzioni....
![]() ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2001
Città: MI
Messaggi: 1801
|
perchè il linguaggio di scripting non è così restrittivo da bloccarti.
la regola vuole che tu prima dichiari $this->a ma se lo dichiari nel costruttore lo digerisce ugualmente. Non so se va bene anche in hack e hhvm però, dove c'è un passaggio di compilazione. finchè sei nel reame interpretato molte inesattezze passano, coem in js ![]()
__________________
italiarec.com forum italiano di registrazione e mixaggio estilocaballero.es ssdoptimizer.eu cambioeuro.eu doflamingo.com studiolegalesangalli.com stilegentiluomo.it italiarec.com italiarec.it arteincasa.it |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Dec 2008
Messaggi: 96
|
Ottimo ora ho capito!
![]() Avevo intuito una cosa del genere ma non pensavo php fosse così "di bocca buona"...ti ringrazio! ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Mar 2001
Città: MI
Messaggi: 1801
|
dipende anche dalla versione che stai usando
(tra 5.3, 5.6 e 7.1 ci sono discrete differenze) butta un occhio a php the right way ![]()
__________________
italiarec.com forum italiano di registrazione e mixaggio estilocaballero.es ssdoptimizer.eu cambioeuro.eu doflamingo.com studiolegalesangalli.com stilegentiluomo.it italiarec.com italiarec.it arteincasa.it |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:07.