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

注意:未定义的变量:行中 ...上 线12PHP:变量的作用域问题/引用变量

高/ scratch.php,

此功能返回一个错误,因为$行没有在本地定义。我在另一个php脚本中定义变量$ rows,该脚本通过脚本文件顶部的“includes('includes.php')”引用。

如何将变量$行传递或“引用”到此函数中?正如你所看到的,我仍然在学习PHP,并且非常感谢任何帮助!

THX,

回答

5

定义你的函数是这样的:

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

然后调用它像这样:

table($rows); 

$rows变量在您调用脚本定义。

另一种选择将是使$rows一个全局变量,在这种情况下,你可以这样做:

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

但是,全局变量,应尽可能避免的时候,所以我还是建议第一种方法。

2

如果你想要使用全局变量,你需要明确声明它的功能。

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

在大多数情况下是不依赖于全局变量是一个好主意,你应该考虑通过$rows作为参数。