|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 89
|
[PHP 5] passaggio a oggetti
ciao ragazzi, ho una domanda da porre ai guru del php. come sapete php 5 introduce la programmazione orientata agli oggetti
ma ci sta una cosa che mi fa storcere il naso: esempio: la classe cane.php Codice:
<?php
/*
* modella un cane
*/
class Cane {
var $nome;
var $peso;
function Cane($nome, $peso){
$this->nome = $nome;
$this->peso = $peso;
}
public function Abbaia(){
print "bau bau";
}
}
?>
Codice:
<html>
<head>
<title>test</title>
</head>
<body>
<?php
// include("cane.php");
print "benvenuto ora creo un cane";
print "<br />";
$bestia = new Cane("bobby", 10);
$bestia->Abbaia();
?>
</body>
</html>
infatti se non lo metto mi da errore! ma è possibile che devo includere un file per istanziare un'oggetto? e se questo oggetto lo devo richiamare in qualche altro file? un'altro include? aiutatemi a trovare una risposta perche essendo abituato con java non mi torna proprio questa cosa grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
si lo devi includere in ogni script che vuole far uso della classe
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 89
|
ma così non si appesantisce il server?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
no, php ha una gestione intelligente degli include...volendo potresti usare require_once che forse è ancora meglio:
http://it.php.net/require_once
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 89
|
ok ti ringrazio...
però questa cosa ancora non mi convince. voglio dire se io istanzio un'oggetto nella pagina x e poi mi server lo stesso oggetto nella pagina y devo rifare l'include nella pagina y? poi però ho lo stesso oggetto creato in x? |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2005
Città: Parma GialloBlu
Messaggi: 450
|
contando che ogni pagina è un "discorso" a sè rispetto alle altre direi che la cosa ha senso...
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
quando termina l'esecuzione di uno script php (cioè di una pagina) tutti gli oggetti sono distrutti, questa è la natura della programmazione web, essendo il protocollo http stateless.
in aiuto ti possono venire le sessioni e i cookie, che ti permettono di avere dei dati lato client a cui avere accesso.
__________________
ho concluso con: kvegeta, doctordb, Leland Gaunt.
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Aug 2005
Messaggi: 306
|
forse dirò una cavolata, ma avevo una curiosità:
è possibile in php memorizzare l'oggetto istanziato in una variabile di sessione, in modo da non dover includere la pagina in ogni altra pagina mi serva la classe?
__________________
... I believe in miracles / I believe in a better world / for me and you ... ...Music is like sunrise for me / it's joyful like a trip in a time machine... ...Sei solo corri, corri, corri, corri / Non ti voltare mai... |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Metti in una pagina .php solo l'implementazione della classe non le istanze.
Dopo includi la pagina .php all'interno di tutte le pagine in cui vuoi usare l'oggetto. |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Mar 2006
Messaggi: 89
|
infatti io faccio così..includo la classe dove mi serve istanziare l'oggetto..
ma poi se devo chiamare quel particolare oggetto da un'altra pagina? |
|
|
|
|
|
#11 | |
|
Messaggi: n/a
|
Quote:
Per mantenere "in vita" gli oggetti puoi serializzarli e passarteli in sessione. |
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jan 2004
Città: Gallarate (VA)
Messaggi: 3903
|
Se nel tuo script dovessi richiamare più moduli che richiedono la stessa classe, ti basta mettere un require_once() invece dell'include.
__________________
Santech M58: CPU: i7 3840QM, RAM: 16GB (2x8GB CL10), HARD DISK: SSD crucial M4 128GB + HD Sata 3 1TB 7200rpm, SCHEDA VIDEO: GeForce GTX 680M |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:46.











ho concluso con: kvegeta, doctordb, Leland Gaunt.









