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

注意:未定義の変数: で行... ライン12PHP:変数のスコープ質問/参照変数

こんにちはオン/ scratch.php、

この機能があります$ rowsがローカルに定義されていないため、エラーが返されます。変数$ rowsを別のPHPスクリプトに定義します。このスクリプトは、このスクリプトファイルの先頭に "includes( 'includes.php')"で参照されます。

変数$ rowsをこの関数に渡す、または「参照する」方法はありますか?ご存じのように、私はまだPHPを学んでおり、どんな助力も大歓迎です!

THX、

答えて

5

はこのようにあなたの関数を定義します。

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

そして、このようにそれを呼び出す:$rows変数はあなたの呼び出し元のスクリプトに定義されている

table($rows); 

他のオプションは、$rowsあなたが行うことができ、その場合には、グローバル変数、作成することになります。可能な場合

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

をしかし、グローバル変数は避けるべきであるので、私はまだ最初の方法をお勧めします。

2

明示的に宣言する必要がある関数にグローバル変数を使用する場合は、それを宣言します。

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

は、ほとんどのケースでは、グローバルに頼るのは良い考えではないですし、パラメータとして$rowsを渡して検討すべきです。