致命错误:无法重新声明short_count()(之前声明为
below-code
:22) 在below-code
第20行
<?php
require_once( './wp-blog-header.php' );
query_posts('&showposts=-1');
if(have_posts()) {
while(have_posts()) : the_post();
$prmlks = '"'. get_the_permalink(). '",';
$links = array( $prmlks );
foreach ($links as $items) {
$json_data = get_transient( 'cache_'. $id .'_tr' );
if ($json_data === false) {
$id = get_the_ID();
$json = file_get_contents( 'http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=' . $items . '&pretty=1' );
$json_data = json_decode($json, true);
set_transient( 'cache_'. $id .'_tr', $json_data, 3600 );
}
function short_count() {
$num = $json_data[0]['total_count'];
if(empty ($num) ) {
return 'n/a';
} else {
if( $num < 1000 ) return $num;
$x = round($num);
$x_number_format = number_format($x);
$x_array = explode(',', $x_number_format);
$x_parts = array('k', 'm', 'b', 't');
$x_count_parts = count($x_array) - 1;
$x_display = $x;
$x_display = $x_array[0] . ((int) $x_array[1][0] !== 0 ? '.' . $x_array[1][0] : '');
$x_display .= $x_parts[$x_count_parts - 1];
return $x_display;
}
}
$short_count = short_count();
echo $short_count;
}
endwhile;
}
?>
问题是:如何在foreach
循环内调用函数?
我希望将函数保留在foreach
循环中,以便获取动态变量..
答案 0 :(得分:1)
将您的功能移出循环。你只需要声明一次,而不是多次,所以它不需要在那个循环中。您可以将功能移到代码顶部(require_once
之后)甚至代码底部(?>
之前),然后您就不会遇到此重新声明问题。您可以在循环内部调用该函数。