2017-12-01 1 views
-2

Ich erfahre "Undefinierte Variable" Fehler beim Zurückgeben eines Arrays aus einer Klasse, aber ich verstehe nicht, warum dies passieren würde.Warum bekomme ich "Undefined variable Error" beim Zurückgeben eines Arrays aus einer Klasse?

Wenn ich print_r($order_ids) aus der Klasse, gibt es kein Problem. Das Problem tritt nur auf, wenn ich von außerhalb der Klasse versuchen, print_r($order_ids).

CLASS-Funktionen FILE

function getOrderIds($start_order, $end_order) { 

    $conn = new Database(); 

    $sql = "SELECT order_id FROM oc_order WHERE order_status_id = '17' AND order_id BETWEEN '$start_order' AND '$end_order'"; 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) { 
     while($row = $result->fetch_assoc()) { 
      $order_ids[] = $row['order_id']; 
     } 
    } 

    return($order_ids); 

} 

CALL-

$order = new Order(); 
$order->getOrderIds($start_order, $end_order); 

print_r($order_ids); 

RESULT

Notice: Undefined variable: order_ids 
+1

fehlt: $ order_ids = $ order-> getOrderIds ($ start_order, $ end_order); //? – kmdm

+0

Ich schlage vor, 'function getOrderIds ($ start_order, $ end_order) { ' 'in' function getOrderIds ($ start_order = null, $ end_order = null) { } zu ändern. Wenn eine der beiden Variablen leer ist, können Sie false zurückgeben. –

Antwort

2
$order = new Order(); 
$order_ids = $order->getOrderIds($start_order, $end_order); 

print_r($order_ids); 
+0

Danke, das funktioniert, aber ich bin mir nicht sicher, warum meine Methode nicht funktioniert hat? Mein Verständnis war, dass die 'Rückkehr'-Funktion $ order_ids für mich definieren würde. Weißt du, wo ich mit meinem Verständnis von "Rückkehr" falsch liege? – Syn

+0

Ihre Variable $ order_ids ist in der Funktion getOrderIds Ihrer Klasse definiert, sie ist außerhalb dieser Funktion nicht erreichbar. Die Rückgabe einer Funktion gibt Ihnen den Wert der Variablen und nicht die Variable zurück – Ciro

Verwandte Themen