Php 访问不同函数中的函数参数?

Php 访问不同函数中的函数参数?,php,function,attributes,arguments,Php,Function,Attributes,Arguments,我有这个功能: <?php myWidget() { ?> <div id="<?php echo $args['widget_id']; ?>"> <p>Something</p> </div> <?php } ?> function myWidget_shortcode( $atts ) { extract( sho

我有这个功能:

<?php myWidget() { ?>

         <div id="<?php echo $args['widget_id']; ?>">
              <p>Something</p>
         </div>

    <?php } ?>
function myWidget_shortcode( $atts ) {
        extract( shortcode_atts( array(
        /* attributes here */
        ), $atts ) );

        ob_start();    
        the_widget(myWidget);
        return ob_get_clean();
}    
_小部件只是简单地调用名为myWidget的小部件

关键是,一切正常,但当我使用第二个代码时,id=”“总是空的

我知道这是一个Wordpress问题,但我相信这与我的PHP代码有更多关系


有什么想法吗?

根据您上次的评论判断,问题是$args没有设置,而且由于ID是从$args设置的,因此它将设置为“”

您必须找出$args的设置位置,并确保该部分已运行或自行设置

在本例中,$args不是myWidget方法的参数,而是一个全局数组

检查它是否存在

isset($args)

我猜这是一个范围问题<代码>$args不在函数内。试着把它传递给函数

这当然也是一个PHP问题,但你可能会得到更具体的帮助(提醒版主注意,并移动你的问题)。第一个片段不是有效的PHP代码。第一个示例可能是某种Wordpress模板吗?@rik,@David Mårtensson,我的错误,这只是一个例子:)在调用myWidget之前,您能测试一下是否设置了$args吗?也许正常调用myWidget的代码会设置$args数组,而您的代码不会?