kostenloser Webspace werbefrei: lima-city


OOP - Get und Array...

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    volnerius

    volnerius hat kostenlosen Webspace.

    Hallo,

    Ich beschäftige mich gerade mit OOP und nun habe ich eine Frage ob das so richtig ist...

    Ich habe ein Array und dazu möchte halt eine getFunktion bauen das würde dann bei mir ungefähr so aussehen:
    public $array;
    	
                    function getArray($parameter)
    		{
    			return $this->array[$parameter];
    		}


    Ist das so richtig/erlaubt? Oder geht das anders?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Wenn Du es auf diese Art nur für Dich verwendest, ist es egal wie Du es umsetzt. Aber wenn Du jetzt Deine Class für andere bereitstellen willst, solltest Du ein paar Sachen ändern, den bei $class->getArray($param); erwarte ich als Ausgabe das Array und nicht die Value eines Eintrags aus dem Array, selbst wenn es eigentlich klar sein sollte dass wenn man einen Parameter an die Methode weitergibt, und es mit Arrays zu tun hat, das am Ende die Value raus kommt.

    Außerdem macht es keinen Sinn eine Methode für ein Array bereitzustellen, das eh public geflagt ist. Sprich ich kann eh via $class->array[$param] direkt auf die Value zugreifen und brauch nicht erst den "Umweg" über eine Methode nehmen. Kurz um:

    protected $array;
    
    public function getArrayValue($param) {
        return $this->array[$param];
    }


    Oder wenn man mehrere Werte ausgeben will, bzw. eine Methode für alle Werte haben will:

    <?php
    
    // Class
    class myClass {
    
    	// Vars->
    	protected $array = array("Hallo", "Welt");
    	protected $string = "Hallo Welt";
    	protected $int = 25;
    
    
    	// getValue ->
    	public function getValue($var, $param = null) {
    		if(is_array($ret = $this->$var) and $param != null) {
    			return $ret[$param];
    		} else {
    			return $this->$var;
    		}
    	}
    
    }
    
    $class = new myClass();
    echo var_dump($class->getValue("array", "1"));
    // Ausgabe: string(4) "Welt"
    
    echo var_dump($class->getValue("array"));
    // Ausgabe: array(2) { [0]=> string(5) "Hallo" [1]=> string(4) "Welt" }
    
    echo var_dump($class->getValue("string"));
    // Ausgabe: string(10) "Hallo Welt"
    
    echo var_dump($class->getValue("int"));
    // Ausgabe: int(25)
    
    ?>


    Musst das ganze ggf. noch ein wenig anpassen und nen Abfangmechanismus einbauen falls es die übergebene Variabel nicht gibt, oder die Variable kein Array ist, aber es sollte klar sein was gemeint ist und ich will hier auch nicht alles vorkauen. Sollst ja auch noch was lernen dabei ;)
  4. Autor dieses Themas

    volnerius

    volnerius hat kostenlosen Webspace.

    Hallo,

    Okay vielen Dank für die Hilfe! :smile:
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!