|
|||||||
|
|
|
![]() |
|
|
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: 00:30.



















