Marc_CH: Zwei Variablen zusammenführen (OOP)

Hallo

Ich möchte gerne in einer Klasse zwei Variablen zusammenführen. Also auf die "normale" Art und Weise klappts ja:

$a = "werta";
$$a = "zweiterwerta"; oder ${"$a"} = "zweiterwerta";
echo $werta; (ausgabe: zweiterwerta)

nun möchte ich dies jedoch in einer klasse machen. ich habe bis jetzt folgenden code:

class Klasse {
    private $werta = "inhaltvonwerta";
    private $wertb = "inhaltvonwertb";

function gibaus($param) {
        //wie macht man das hier?
        echo $this->$param; oder echo ${"this->$param"};
    }
}

$klasse = new Klasse();
$klasse->gibaus("werta");
(ausgabe: nichts...)

  1. echo $begrüßung;

    Ich möchte gerne in einer Klasse zwei Variablen zusammenführen.

    Nein, das was du möchtest nennt sich variable Variablen verwenden.

    class Klasse {
        private $werta = "inhaltvonwerta";
        function gibaus($param) {
            //wie macht man das hier?
            echo $this->$param; oder echo ${"this->$param"};

    Die erste Variante wäre es. $this steht ja fest. Statt dem Namen "werta" ($this->werta) möchtest du eine Variable angeben. Dann darf nur dieser Name der variable Teil werden.

    $klasse = new Klasse();
    $klasse->gibaus("werta");
    (ausgabe: nichts...)

    Das kann ich so nicht nachvollziehen, ich erhalte inhaltvonwerta (mit der ersten Methode von oben). Vielleicht ist PHP gesprächiger, wenn du das error_reporting auf E_ALL stellst.

    Im Allgemeinen gibt es je nach konkretem Anwendungsfall bessere Möglichkeiten auf variable Werte zuzugreifen als einen variablen Variablennamen dafür zu verwenden.

    echo "$verabschiedung $name";

  2. Hallo,

    class Klasse {
        private $werta = "inhaltvonwerta";
        private $wertb = "inhaltvonwertb";

    function gibaus($param) {
            //wie macht man das hier?
            echo $this->$param; oder echo ${"this->$param"};
        }
    }

    $klasse = new Klasse();
    $klasse->gibaus("werta");
    (ausgabe: nichts...)

    Um auf Variablen innerhalb der Klasse zuzugreifen, schreibst du folgendes:
    echo $this->werta;
    echo $this->wertb;

    für $param in deiner Funktion gibaus, einfach
    echo $param;

    Gruß,
    Kerstin

    --
    "Als es noch keine Computer gab, war das Programmieren noch relativ einfach." - Edsger W. Dijkstra