Re: OOP, classes and databases [message #169542 is a reply to message #169474] |
Fri, 17 September 2010 12:57 |
Mattias Campe
Messages: 7 Registered: September 2010
Karma:
|
Junior Member |
|
|
Op 14-09-10 21:22, Thomas Mlynarczyk schreef:
> Mattias Campe schrieb:
>>> public static function getById(PDO $db, $id){
>>> // ....
>>> return new Person($row['id'], $row['name'], $row['adress']);
>>> }
>>
>> How could I use this class? Because I would need to make a Person from
>> the database, but first I would need to make a "random" Person, like:
>>
>> $oPerson = new Person("000","something that will be
>> overwritten","blabla");
>>
>> $oPerson->getById($dbh,"245");
>
> No. The crucial thing here is the "static" keyword: "public STATIC
> function getById(...)" That means you don't need a Person instance to
> access it, you simply write:
>
> $oPerson = Person::getById( $dbh, '245' );
>
Owkay, now I understand. So I could use that class in two ways:
Make a Person:
$oPerson1 = new Person("010","Johan","some adress");
Get an existing Person
$oPerson2 = Person::getById($dbh, '245');
So I think I'm getting it. Or at least almost: would it have the same
effect as using 2 constructors?
public function __construct($id, $name, $address){
// ...
}
public function __construct($id, $dbh){
// ...
}
$oPerson1 = new Person("010","Johan","some adress");
$oPerson2 = new Person($dbh, '245');
Greetings
Mattias
|
|
|