Het kan wel in één regel maar waarom zou je dit willen? Je code wordt er heel onduidelijk van.
dan zou ik het nog eerder zo doen;
<?php
public function getProduct()
{
if($select->rowCount() == 0)
{
return 'This product does not exist!';
}
return $this->product = $select->fetchAll(PDO::FETCH_OBJ);
}
Toon Meer
of zo
<?php
class Select
{
public function rowCount()
{
return 0;
}
}
function getProduct(Select $select)
{
if($select->rowCount() == 0)
{
throw new Exception("The requested product does not exist.");
}
return $this->product = $select->fetchAll(PDO::FETCH_OBJ);
}
try
{
$select = new Select;
getProduct($select);
}
catch (Exception $e)
{
echo $e->getMessage();
}
Toon Meer
Qua classes zit je wel in de richting ja. Hoe je het zou kunnen zien, je hebt Users en Administratoren.
Maar een administrator is net zo goed een gebruikers, alleen heeft deze extra functionaliteit rechten.
dan krijg je zo iets
<?php
class User
{
protected $gebruikersNaam;
function __construct($gebruikersNaam)
{
$this->gebruikersNaam = $gebruikersNaam;
}
public function getGebruikersNaam()
{
return $this->gebruikersNaam;
}
}
class Admin extends User
{
public function verwijderAccount()
{
// Doe iets om het account te verwijderen.
}
}
$user = new User('DirkZz');
$admin = new Admin('DirkZz');
// Dit kan
$admin->verwijderAccount(); // Kan
$admin->getGebruikersNaam(); // Kan
$user->getGebruikersNaam(); // Kan
$user->verwijderAccount(); // Kan niet methode verwijderAccount bestaat niet.
Toon Meer
(Het forum vernaggelt al mijn inspringingen, sorry daarvoor)
Wat betreft namespaces, deze gebruik je om bijv. Class namen meerdere keren te gebruiken in je code en om deze op een logische wijze te structureren.
Je maakt dan een folderstructuur aan die er zo uit kan zien;
ToonData/Csv/Genereer.php
ToonData/Xml/Genereer.php
met als code voor die 2 php bestanden bijv;
<?php namespace ToonData\Csv;
class Genereer
{
public function toon()
{
}
}
<?php namespace ToonData\Xml;
class Genereer
{
public function toon()
{
}
}
En op de plek waar je het gebruikt;
<?php
use ToonData\Xml\Genereer AS GenereerXML;
use ToonData\Csv\Genereer AS GenereerCSV;
$xmlGenerator = new GenereerXML();
$csvGenerator = new GenereerCSV();
$xmlGenerator->toon();
$csvGenerator->toon();
Toon Meer
( Zoals het in dit voorbeeld is gebruikt is het ook handig zijn om het tegen een interface aan te gooien )