【问题标题】:Use a returned value of a function from another file in PHP在 PHP 中使用来自另一个文件的函数的返回值
【发布时间】:2015-02-04 20:22:13
【问题描述】:

我在一个单独的文件中使用了一个函数,它应该返回一个包含字段枚举值的数组:

<?php 
function getEnumValues($table, $field) {
$enum_array = array();
$query = "SHOW COLUMNS FROM '{$table}' WHERE Field = '{$field}'";
$result = mysqli_query($query);
$row = mysqli_fetch_row($result);
preg_match_all('/\'(.*?)\'/', $row[1], $enum_array);
return $enum_array;
}
?>

在主文件中,我这样做:

<?php
require 'common.php';
for ($i=0; $i <= 5; $i++) {
                getEnumValues(property, value_type);
                echo "<input type='radio' name='tipo_valor' value='$enum_array[$i]' required>" . '  ' .$enum_array[$i] . '<br>';
            }
?>

问题是函数什么都不返回。

那么这个功能可以满足我的需要吗? 我可以将另一个文件中返回的变量用作局部变量吗?

感谢您的宝贵时间和建议!

【问题讨论】:

    标签: php file function return require


    【解决方案1】:

    函数正在返回一个值;你只是没有捕捉到它。函数体中的 $enum_array 仅存在于该函数的范围内。您需要将函数的返回值放在范围内的变量中。在您的主文件中:

    <?php
    require 'common.php';
    for ($i=0; $i <= 5; $i++) {
                $enum_array = getEnumValues(property, value_type);
                echo "<input type='radio' name='tipo_valor' value='$enum_array[$i]' required>" . '  ' .$enum_array[$i] . '<br>';
            }
    ?>
    

    【讨论】:

    • 如果 property 和 value_type 在循环中是不变的参数,那么将函数调用移到 for 循环之上会更有效,而不是每次循环迭代时调用它。如果 $enum_array 在循环期间保持不变,则重新运行该函数是没有意义的。
    猜你喜欢
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 2021-11-26
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    相关资源
    最近更新 更多