2016-04-12 6 views
0

folgenden anhand der Sortierung wird ein Probenarray:ein Array oop

array(11, -2, 4, 35, 0, 8, -9) 

I oop nutzen möchte, es zu sortieren und um dieses Ergebnis zu erzeugen:

Output:

Array ([0] => -9 [1] => -2 [2] => 0 [3] => 4 [4] => 8 [5] => 11 [6] => 35) 

I Unten wurde die Lösung bereitgestellt, die funktioniert. Was ich nicht verstehe, ist was die __construct macht. Ich habe ein Verständnis für Anfänger, wie Konstrukteure Arbeit, aber was konkret ist der Zweck dieses Konstruktor ?:

public function __construct(array $asort) 
{ 
    $this->_asort = $asort; 

Ist es die Eingabe in ein Array drehen?

<?php 
class array_sort 
{ 
    protected $_asort; 

    public function __construct(array $asort) 
    { 
     $this->_asort = $asort; 
    } 
    public function alhsort() 
    { 
     $sorted = $this->_asort; 
     sort($sorted); 
     return $sorted; 
     } 
} 
$sortarray = new array_sort(array(11, -2, 4, 35, 0, 8, -9)); 
print_r($sortarray->alhsort()); 
?> 
+0

Ola! Haben Sie sich diese nette Funktion angesehen? http://php.net/manual/en/function.sort.php – Jer

+0

Warum möchten Sie "mit OOP" sortieren? – PeeHaa

Antwort

1

Es ist eine Referenz auf das aktuelle Objekt, es wird am häufigsten in objektorientiertem Code verwendet.

Hier ist eine reference und eine längere primer. Das Array $asort ist der Variablen $_asort der Klasse zugewiesen und nimmt $_asort als eine Eigenschaft des erstellten Objekts an.

0

Die __construct() ist die protected $_asort; initialisiert. Im Wesentlichen wird Ihr Array-Parameter in eine Klassenvariable verschoben, die dann von alhsort() verwendet wird.

Zur Verdeutlichung der Eingang wie Sie gesagt ist bereits ein Array, wenn Sie array(...) das Konstrukt einfach kopiert sie in eine Variable zugänglich durch die gesamte array_sort Klasse deklarieren.

0

Dies ist viel zu überentwickelt!

Warum wollen Sie diese oop tun möchten, wenn Sie einfach

$sortarray = sort(array(11, -2, 4, 35, 0, 8, -9)); 

nennen können Ihre Frage, __construct() aufgerufen wird, um zu beantworten, wenn das Objekt neu array_sort instanziiert wird (Array (11, - 2)); instanziiert das array_sort-Objekt.

Ihr bestimmter Konstruktor legt die geschützte Eigenschaft $ _asort mit dem Wert fest, der an das erste Argument $ asort übergeben wird.

0
<?php 
class array_sort 
{ 
    public $temp; 
    public function alhsort(array $sorted) 
    { 
     for($i=0; $i<count($sorted)-1; $i++){ 
      for($j=$i+1; $j<count($sorted); $j++){ 
       if($sorted[$i] > $sorted[$j]){ 
        $temp = $sorted[$i]; 
        $sorted[$i] = $sorted[$j]; 
        $sorted[$j] = $temp; 
       } 
      } 
     } 
     return $sorted; 
     } 
} 
$sortarray = new array_sort(); 
print_r($sortarray->alhsort(array(11, -2, 4, 35, 0, 8, -9))); 
?>