Ho appena iniziato a cimentarmi nella programmazione ad oggetti in php avendo pochissime basi di c# e java.......
conosco bene(abbastanza) il php, ma finora l'ho utilizzato solo in forma procedurale....
Da poco ho pensato di buttarmi sugli oggetti.
Volevo chiedere alcuni chiarimenti sul loro funzionamento.....
Posto del codice per fare esempi su qualcosa di concreto.
Codice PHP:
<?php
require"MySql.php";
Class Utente{
var $Id;
var $Username;
var $Password;
var $Email;
var $Password;
var $Avatar;
var $res;
var $Banned;
function __construct($Identity){
$this->Id=$Identity;
}
function getUserById(){
$this->Username=mysql_query("SELECT Username FROM Accounts WHERE Id='$this->Id'")or die(mysql_error());
//code
}
function getPassById($Id){
$this->Password=mysql_query("SELECT Password FROM Accounts WHERE Id='$Id'")or die(mysql_error());
//code
}
function getEmailById($Id){
$this->Email=mysql_query("SELECT Email FROM Accounts WHERE Id='$Id'")or die(mysql_error());
//code
}
function getAvatarById($Id){
$this->Avatar=mysql_query("SELECT Avatar FROM Accounts WHERE Id='$Id'")or die(mysql_error());
//code
}
function Ban($Id){
$this->Banned=mysql_query("INSERT INTO Accounts VALUES(0,0,0,\"banned\",0)WHERE Id='$Id'");
//code
}
function Email($Id, $Oggetto, $Testo){
$Email=$this->getEmailById($Id);
mail($Email,$Oggetto,$Testo,"Redazione ikonosis");
//code
}
//fine classe
}
?>
Prima di tutto...............CI sono ERRORACCI???
Poi: (DOMANDE)
1) il costruttore devo sempre inserirlo oppure i certi casi si può omettere??CIoè se io voglio che tutte le variabili della classe siano nulle devo per forza scrivere un costruttore che definisce nulle tutte le variabili??
2) Quando faccio l'include o il require di questa pagina php in uno script devo istanzaire l'oggetto giusto?
in questo modo per esempio
Codice PHP:
$Classe= new Utente;//Qui non devo mettere le parentesi tonde se non ho fatto il costruttore vero?
Per poi richiamarne il metodo in questo modo
Codice PHP:
$Classe->getUserById(/*Id da cercare*/)
fino qui va tutto bene??
Se sì........Perchè NON va??????
se no........Come faccio a farlo andare???????
Grazie mille per qualsiasi suggerimento e spiegazione a riguardo.....(Io a programmare ad oggetti faccio + fatica.....uffa........sono depresso)
Grazie
Marmos