2009-08-14 11 views
1
<?php 
function table() { 
    ot(); 
    for($x=0; $x<$rows; $x++) { 
    table_row($x); 
} 
    ct(); 
} 
?> 

Hinweis: Undefined variable: Reihen in .../scratch.php auf Linie 12PHP: Variable Scope Frage/Referenzierung Variablen

Hallo,

Diese Funktion ist gibt einen Fehler zurück, weil $ rows lokal nicht definiert ist. Ich definiere die Variable $ rows in einem anderen PHP-Skript, das über "includes ('includes.php')" am Anfang dieser Skriptdatei referenziert wird.

Wie übergebe oder "referenziere" ich die Variable $ rows in diese Funktion? Wie Sie sehen können, lerne ich immer noch PHP und jede Hilfe wird sehr geschätzt!

thx,

Antwort

5

Definieren Sie Ihre Funktion wie folgt aus:

function table($rows) { 
    ot(); 
    for($x=0; $x<$rows; $x++) { 
    table_row($x); 
} 

Und dann es so nennen:

table($rows); 

Wo die $rows Variable in der aufrufende Skript definiert ist.

würde Die andere Option sein $rows eine globale Variable zu machen, wobei in diesem Fall können Sie tun:

function table() { 
    global $rows; 
    //etc 
} 

Allerdings sollten globale Variablen, wenn möglich, vermieden werden, also würde ich immer noch die erste Methode empfehlen.

2

Wenn Sie globale Variable mit der Funktion verwenden möchten, müssen Sie dies explizit deklarieren.

<?php 
function table() { 
    global $rows; 
    for($x = 0; $x < $rows; $x++) { 
     table_row($x); 
    } 
} 

In den meisten Fällen ist es nicht eine gute Idee, auf Globals verlassen, und Sie sollten vorbei $rows als Parameter betrachten.