Archief - Syntax

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Zuppie

Legacy Member
ik heb vroeger al een beetje PHP geprogrammeerd maar om men "skills" wat op te krikken ben ik aan het boek "PHP Objects, Patterns and Practice" begonnen.

Daarin kwam ik volgende snippet tegen:

PHP:
class ShopProduct {
	public $title = "default product";
	public $producerMainName = "main name";
	public $producerFirstName = "first name";
	public $price = 0;
	function getProducer() {
		return "{$this->producerFirstName}" . " {$this->producerMainName}";
	}
}

waarom wordt er hier gebruik gemaakt van accolades?
zelf zou ik het spontaan zo hebben gedaan:
PHP:
class ShopProduct {
	public $title = "default product";
	public $producerMainName = "main name";
	public $producerFirstName = "first name";
	public $price = 0;
	function getProducer() {
		return $this->producerFirstName . $this->producerMainName;
	}
}

piemel

Legacy Member
In uw oplossing hebt ge geen spatie tussen de voor- en achternaam. ;)

Tyfius

Legacy Member
Zie hierboven.

Uiteindelijk heeft dat te maken met de snelheid. In uw voorbeeld is dat verwaarloosbaar en ik moet in al die jaren dat ik al met PHP ontwikkel nog een deftig voorbeeld tegen komen waarom je dat zou gebruiken. In zijn voorbeeld zou ik dan ook eerder gewoon iets gedaan hebben als:
PHP:
function getProducer() {
  return "{$this->producerFirstName} {$this->producerLastName}";
}

In ieder geval bevat de PHP manual een uitgebreidere uitleg en voorbeelden: Complex string parsing.

dJeez

Legacy Member
Het voorbeeld is idd nogal slecht gekozen. Waar je die accolade-notatie wel zou kunnen tegenkomen is in templates, waar je in een statische tekst dynamische velden gaat vervangen (vb. om een mailing te personaliseren).

Om heel eerlijk te zijn lijkt die code ook echt nergens op... Enkel public member vars? Member vars die totaal irrelevant zijn voor het object in kwestie (een producent moet op zich een object zijn ipv er member vars voor te creëren in je product object). Dat zijn toch dingen waar auteurs eens wat meer aandacht aan mogen besteden imho. Tenzij ze dit als slechte werkwijze voorschotelen en het daarna corrigeren uiteraard...

Zuppie

Legacy Member
het "public" vs "private" gedeelte van het boek kwam pas na het gedeelte waar dat snippet in stond, vandaar wellicht dat hij er nog geen private of protected gebruikte

in ieder geval bedankt voor jullie antwoorden!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan