Ik heb een class User met een getName functie en een setName functie. Wat moet volgens jullie de getName functie teruggeven op het moment dat setName nog niet is gebruikt om een naam op te geven?
<?php
class User {
private $name;
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
}
?>
De twee meest voor de hand liggende opties lijken mij dat de getName functie null returnt (zoals hierboven), of dat de getName functie een lege string returnt:
<?php
class User {
private $name = '';
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
}
?>
Heeft een van beide opties de voorkeur (en zo ja waarom) of maakt het helemaal niks uit en is het een kwestie van persoonlijke smaak?
>> De prijs van een product bijvoorbeeld geef ik het type DECIMAL(6,2) en een default value van 0,00.
Dat is een goed voorbeeld van een lastige keuze: met 0.00 als standaardwaarde verlies je het onderscheid tussen producten waarvan de prijs nog niet bekend is en gratis producten. Om te voorkomen dat er per ongeluk producten cadeau worden gedaan, zou ik hier toch kiezen voor een nullable kolom en een DEFAULT NULL.
Daar heb je een punt Ward. Kan me herinneren dat zoiets een paar jaar geleden eens is gebeurd. Het exacte hoe en wat herinner ik me niet meer. Maar het ging erom dat mensen iets voor 0 euro konden kopen, en dat gebeurde dan ook massaal. Daar sta je dan als ondernemer :-s Hahaha...
Dan is er één of andere druiloor een formulier aan het verwerken:
[code]
<?php
$this->db->set('product_price', (float) $post->getFieldValue('price'));
?>
>> De prijs van een product bijvoorbeeld geef ik het type DECIMAL(6,2) en een default value van 0,00.
Dat is een goed voorbeeld van een lastige keuze: met 0.00 als standaardwaarde verlies je het onderscheid tussen producten waarvan de prijs nog niet bekend is en gratis producten. Om te voorkomen dat er per ongeluk producten cadeau worden gedaan, zou ik hier toch kiezen voor een nullable kolom en een DEFAULT NULL.
Klopt, ik wilde even snel een voorbeeld geven, maar je hebt inderdaad een punt. Ook in dit geval kun je beter NULL gebruiken. Bedankt voor de aanvulling!
@Ger van Steenderen: Als je de set method zo maakt dat hij rekening houdt met lege waardes, kan dat toch prima? Als het framework er maar op gemaakt is.