Hallo,

aangezien we in php niet zoals in C# fields kunnen instellen als private set en public get, is het gebruikelijk in php om aparte get en set functies te maken zoals dit voorbeeld.

<?php
class StringDemo
{
/**
* @var $_sString string
*/
private $_sString = '';

/**
* @return string
*/
public function GetString()
{
return $this->_sString;
}

/**
* @param $sStringValue
*/
public function SetString($sString)
{
$this->_sString = $sString;
}
}
?>

Echter vroeg ik me af of dit ook een degelijk goed (en vooral ook) duidelijk idee zou zijn?

<?php
class StringDemo
{
/**
* @var $_sString string
*/
private $_sString = '';

/**
* Get or Set the StringName value
*
* @param null|string $sString
* @return string
*/
public function StringName($sString = null)
{
if ($sString != null && $sString != $this->_sString)
{
$this->_sString = $sString;
}
else
{
return $this->_sString;
}
}
}
?>

Op deze manier heb je dan 1 public functie om een te lezen als je de parameter leeg laat, en schrijven als je de parameter vult met een waarde.

Ik lees graag jullie tip/advies hierover.

P.S. ik weet dat er ook magic __get en __set zijn, echter zijn deze niet goed ondersteund in php ide's in de intelisence.
Ik gebruik phpStorm, en daar ervaar ik dat in ieder geval :-)

Reageren