访问函数外的变量

时间:2011-10-26 22:08:04

标签: php function variables

如果我有这样的功能:

function ($form, $db) {  
     $v = count($a);
}

function ($form, $db);

和此代码在同一个文件中

<script type="text/javascript">
$(document).ready(function() {
    for ($i=0; $i< <?php echo $v-1; ?>; $i++) {//here
}

如何访问变量$v?我已经知道全局变量通常是一种不好的做法,那么替代方案是什么呢?

感谢

6 个答案:

答案 0 :(得分:2)

使用return $v

function ($form, $db) {  
     $v = count($a);
     return $v;
}

<script type="text/javascript">
$(document).ready(function() {
    for ($i=0; $i< <?php echo function( $form , $db )-1; ?>; $i++) {//here
}

答案 1 :(得分:1)

使用函数返回在全局范围内设置$ v的值。然后变量将在函数外部访问。

<?php
function ttt($form, $db)
{
    return count($db);
}
$v = ttt($form, $db);

现在可以通过全球范围访问$ v。

另外,请注意javascript变量不使用$前缀,所以$ i需要只是 ...除非我在那里遗漏了一些东西。

答案 2 :(得分:0)

使用全局变量;只是给它一个比$v更具描述性的名称,这样就不会有与其他东西冲突的危险。

答案 3 :(得分:0)

基本return怎么样?

function name($form, $db) {  
     $v = count($a);
     return $v;
}

$v = name($form, $db);

答案 4 :(得分:0)

使用函数本身,给它起一个名字并使用像这样的返回值

function counter($form, $db) {  
 $v = count($a);
 return $v;
}

并在脚本文件中以这种方式调用函数

<script type="text/javascript">
$(document).ready(function() {
  for ($i=0; $i< <?php echo ($this->counter())-1; ?>; $i++) {//here
}

我希望它有所帮助

答案 5 :(得分:0)

使用类来声明全局变量,以便为它们提供上下文

示例:

class Config {
    public static $v;
}

然后你可以使用Config :: $ v = count(a);

如果您有更多全局变量(如某些相互关联的配置参数),并且您需要在整个应用程序中读取和写入它们,这将非常有用。

如果不是这种情况,这只是一个单一的案例,那么你应该考虑使用返回值。