php函数中动态整数值的串联

php函数中动态整数值的串联,php,for-loop,Php,For Loop,我正在尝试打印动态值,并使用我将使用的foreach。这是我正在尝试的代码。 这是我必须对其进行集成并使其动态化的原始代码,以便循环运行4次。我必须将print_static_1_容器更改为print_static_$I_容器 <?php if(!function_exists('print_static_1_container')) { function print_static_1_container() { 这是我正在尝试的代码: <?php

我正在尝试打印动态值,并使用我将使用的foreach。这是我正在尝试的代码。 这是我必须对其进行集成并使其动态化的原始代码,以便循环运行4次。我必须将print_static_1_容器更改为print_static_$I_容器

 <?php
    if(!function_exists('print_static_1_container')) {
        function print_static_1_container() {
这是我正在尝试的代码:

    <?php
 for($i=1;$i<=4;$i++) {
    $function = create_function('$i', 'echo "print_static_{$i}_container";');

    function $function() {
    global $SITE; ?>

    <!-- Static 1 Container -->
    <!-- ********************************************* START ************************************************* -->
    <div class="static-<?php echo $i; ?>-home">
        <div class="row">
                <div class="gal-head home-section-head">
            <?php
            if(isset($SITE['theme_options']->static_$i_html_content) && !empty($SITE['theme_options']->static_$i_html_content))
                echo $SITE['theme_options']->static_$i_html_content;
            ?>
            </div>
        </div>
    </div>

    <?php
        }
    }


?>
我得到的错误是

意外的“.”行内函数打印\u静态\u“$i”。\u容器

应该是:

 $function_name = "print_static_$i_container";
 if(!function_exists($function_name)) {
 $function_name = function() {
    // do stuff
 };
您可以这样调用此函数:$function\u name


只能在双引号内使用变量。PHP完全按照字符串的显示解释所有单引号字符串,也就是说,存储在变量中的值不会在字符串中被替换。

举例说明,这可能是您想要的。用于创建动态函数

for($i=1;$i<=4;$i++) {
    $function = create_function('$i', 'echo "Calling function with argument {$i} \n";');

    // Lets Call last created function
    $function($i);
}
替代解决方案PHP5.3.x
我数了一下,有4个右大括号不见了。@ADASein:右大括号太完美了。它正在工作并显示内容,而无需自动化。就是我写的,代码块4次。我只是在这里简略地写了代码。我想指出的是,你必须正确地发布代码,这样人们才能帮助你。@ADASein:编辑了这个问题。更不用说,你也必须注意右大括号。我得到以下错误:语法错误,意外的“$function\u container”T\u变量,应为标识符T_字符串或在>函数$function_容器中这是在函数$function$I语法错误、意外的“$function”T_变量、应为标识符T_字符串中得到的错误。此外,请检查编辑的问题以进一步参考代码。@NikhileshVaishy在本例中使用我的替代部分。并将函数调用到循环中。
for($i=1;$i<=4;$i++) {

    $functionName = "print_static_{$i}_container";
    $$functionName = function($args) { ?>

<!-- Static 1 Container -->
<!-- ********************************************* START ************************************************* -->
<div class="static-<?php echo $args; ?>-home">
    <div class="row">
            <div class="gal-head home-section-head">
        <?php
        if(isset($SITE['theme_options']->static_$args_html_content) && !empty($SITE['theme_options']->static_$i_html_content))
            echo $SITE['theme_options']->static_$args_html_content;
        ?>
        </div>
    </div>
</div>

<?php };

  $print_static_$i_container($i);
}

$print_static_3_container(3);    // Output: Calling 3
$print_static_2_container(2);    // Output: Calling 2