ZodiacXP
Erfahrenes Mitglied
Hallo. Dies ist eine Diskussion über den Sinn von Klassen für Datentypen.
Das ganze passt nicht in das Forum "Coders Talk", da speziell PHP besprochen werden soll.
Es geht darum herauszufinden, ob ein (komplexer) Datentyp (Integer, String, etc.) mit verschiedenen Methoden zum Manipulieren und Arbeiten (wie aus Java oder C) Vorteilhaft oder Nachteilhaft ist.
Zum Beispiel ein String:
Oder bietet es sich eher an eine Klasse zu machen die keinen Wert (hier: _value) enthält, sondern für einen speziellen Datentyp manipulationen anbietet und den Wert als Argument erhält:
Das einfache Funktionen schneller als Methoden / Objekte / Klassen sind soll nicht beachtet werden.
Das ganze passt nicht in das Forum "Coders Talk", da speziell PHP besprochen werden soll.
Es geht darum herauszufinden, ob ein (komplexer) Datentyp (Integer, String, etc.) mit verschiedenen Methoden zum Manipulieren und Arbeiten (wie aus Java oder C) Vorteilhaft oder Nachteilhaft ist.
Zum Beispiel ein String:
PHP:
class AString
{
private $_value = '';
// zum Beispiel eine Funktion, die den String abschneiden soll
function cut($len, $fill = '')
{
// nur wenn string länger
if (strlen($title) > $len)
{
$s = substr($this->__toString(), 0, $len);
// auf ganze wörter trennen, wenn möglich
if (strpos($s, ' ') !== false)
{
return substr($s, 0, strpos($s, ' ')) . $fill;
}
return $s . $fill;
}
return $this->__toString();
}
function set($s)
{
$this->_value = $s;
}
function __toString()
{
return $this->_value;
}
function __construct(string $s)
{
$this->_value = $s;
}
}
Oder bietet es sich eher an eine Klasse zu machen die keinen Wert (hier: _value) enthält, sondern für einen speziellen Datentyp manipulationen anbietet und den Wert als Argument erhält:
PHP:
class ManipulateString
{
function cut($s, $len, $fill = '')
{
// nur wenn string länger
if (strlen($s) > $len)
{
$s = substr($s, 0, $len);
// auf ganze wörter trennen, wenn möglich
if (strpos($s, ' ') !== false)
{
return substr($s, 0, strpos($s, ' ')) . $fill;
}
return $s . $fill;
}
return $s;
}
}
Das einfache Funktionen schneller als Methoden / Objekte / Klassen sind soll nicht beachtet werden.