如何获取PHP函数中已声明的变量的值并在外部返回它 函数计数($data){ $json=file\u get\u contents('http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=“.$data.”&pretty=1’; $json_data=json_decode($json,true); $count=$json_数据[0]['total_count']; 如果(空($count)){ 返回“不适用”; }否则{ 如果($countcount=$count=$json_数据[0]['total_count']; 如果(空($count)){ 返回'n/a';//是否应为null? }埃尔

如何获取PHP函数中已声明的变量的值并在外部返回它 函数计数($data){ $json=file\u get\u contents('http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=“.$data.”&pretty=1’; $json_data=json_decode($json,true); $count=$json_数据[0]['total_count']; 如果(空($count)){ 返回“不适用”; }否则{ 如果($countcount=$count=$json_数据[0]['total_count']; 如果(空($count)){ 返回'n/a';//是否应为null? }埃尔,php,function,variables,scope,Php,Function,Variables,Scope,如何在上述函数之外仅获取$count的值?调用上述函数肯定会返回$x\u display,我还想在代码中的其他地方回显简单计数$count。使用$x\u display返回它。通常,这是作为一个数组完成的,您可以使用list()获取每个片段: function count($data) { $json = file_get_contents( 'http://api.facebook.com/restserver.php?method=links.getStats&format=

如何在上述函数之外仅获取
$count
的值?调用上述函数肯定会返回
$x\u display
,我还想在代码中的其他地方回显简单计数
$count

使用
$x\u display
返回它。通常,这是作为一个数组完成的,您可以使用
list()
获取每个片段:

function count($data) {
    $json = file_get_contents( 'http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=' . $data . '&pretty=1' );
    $json_data = json_decode($json, true);
    $count = $json_data[0]['total_count'];
    if(empty ($count) ) {
        return 'n/a';
    } else {
        if( $count < 1000 ) return $count;
        $x = round($count);
        $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;
    }

}
函数计数($data){
$json=file\u get\u contents('http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=“.$data.”&pretty=1’;
$json_data=json_decode($json,true);
$count=$json_数据[0]['total_count'];
如果(空($count)){
返回“不适用”;
}否则{
如果($count<1000)返回$count;
$x=整数($count);
$x_number_format=number_format($x);
$x_数组=分解(“,”,$x_数字_格式);
$x_parts=数组('k','m','b','t');
$x_count_parts=count($x_数组)-1;
$x_显示=$x;
$x_display=$x_数组[0]。((int)$x_数组[1][0]!==0?'。$x_数组[1][0]:“”);
$x_显示。=$x_零件[$x_计数_零件-1];
返回数组($x_display,$count);
}
}
列表($x_display,$count)=计数($data);
尽管返回两个值通常不是一个好的做法。将其分解为两个函数,我认为这可能是更好的方法:

function count($data) {
    $json = file_get_contents( 'http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=' . $data . '&pretty=1' );
    $json_data = json_decode($json, true);
    $count = $json_data[0]['total_count'];
    if(empty ($count) ) {
        return 'n/a';
    } else {
        if( $count < 1000 ) return $count;
        $x = round($count);
        $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  array($x_display, $count);
    }

}

list($x_display, $count) = count($data);
函数计数($data){
$json=file\u get\u contents('http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=“.$data.”&pretty=1’;
$json_data=json_decode($json,true);
返回$json_数据[0]['total_count'];
}
函数getDisplay($count){
如果(空($count)){
返回“不适用”;
}否则{
如果($count<1000)返回$count;
$x=整数($count);
$x_number_format=number_format($x);
$x_数组=分解(“,”,$x_数字_格式);
$x_parts=数组('k','m','b','t');
$x_count_parts=count($x_数组)-1;
$x_显示=$x;
$x_display=$x_数组[0]。((int)$x_数组[1][0]!==0?'。$x_数组[1][0]:“”);
$x_显示。=$x_零件[$x_计数_零件-1];
返回$x_显示;
}
}
$count=计数($data);
$x_display=getDisplay($count);

不要使用别人不可避免地会建议的
global
关键字。这是一种不好的编程实践,可能导致很难检测到bug。

使用
$x_display
返回它。通常,这是作为一个数组完成的,您可以使用
list()
获取每个片段:

function count($data) {
    $json = file_get_contents( 'http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=' . $data . '&pretty=1' );
    $json_data = json_decode($json, true);
    $count = $json_data[0]['total_count'];
    if(empty ($count) ) {
        return 'n/a';
    } else {
        if( $count < 1000 ) return $count;
        $x = round($count);
        $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;
    }

}
函数计数($data){
$json=file\u get\u contents('http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=“.$data.”&pretty=1’;
$json_data=json_decode($json,true);
$count=$json_数据[0]['total_count'];
如果(空($count)){
返回“不适用”;
}否则{
如果($count<1000)返回$count;
$x=整数($count);
$x_number_format=number_format($x);
$x_数组=分解(“,”,$x_数字_格式);
$x_parts=数组('k','m','b','t');
$x_count_parts=count($x_数组)-1;
$x_显示=$x;
$x_display=$x_数组[0]。((int)$x_数组[1][0]!==0?'。$x_数组[1][0]:“”);
$x_显示。=$x_零件[$x_计数_零件-1];
返回数组($x_display,$count);
}
}
列表($x_display,$count)=计数($data);
尽管返回两个值通常不是一个好的做法。将其分解为两个函数,我认为这可能是更好的方法:

function count($data) {
    $json = file_get_contents( 'http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=' . $data . '&pretty=1' );
    $json_data = json_decode($json, true);
    $count = $json_data[0]['total_count'];
    if(empty ($count) ) {
        return 'n/a';
    } else {
        if( $count < 1000 ) return $count;
        $x = round($count);
        $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  array($x_display, $count);
    }

}

list($x_display, $count) = count($data);
函数计数($data){
$json=file\u get\u contents('http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=“.$data.”&pretty=1’;
$json_data=json_decode($json,true);
返回$json_数据[0]['total_count'];
}
函数getDisplay($count){
如果(空($count)){
返回“不适用”;
}否则{
如果($count<1000)返回$count;
$x=整数($count);
$x_number_format=number_format($x);
$x_数组=分解(“,”,$x_数字_格式);
$x_parts=数组('k','m','b','t');
$x_count_parts=count($x_数组)-1;
$x_显示=$x;
$x_display=$x_数组[0]。((int)$x_数组[1][0]!==0?'。$x_数组[1][0]:“”);
$x_显示。=$x_零件[$x_计数_零件-1];
返回$x_显示;
}
}
$count=计数($data);
$x_display=getDisplay($count);

不要使用别人不可避免地会建议的
global
关键字。这是一种糟糕的编程实践,可能导致很难检测bug。

在我看来,这是类的完美用法

function count($data) {
    $json = file_get_contents( 'http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=' . $data . '&pretty=1' );
    $json_data = json_decode($json, true);
    return $json_data[0]['total_count'];
}

function getDisplay($count) {
    if(empty ($count) ) {
        return 'n/a';
    } else {
        if( $count < 1000 ) return $count;
        $x = round($count);
        $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;
    }
}

$count = count($data);
$x_display = getDisplay($count);
类名{
受保护的$计数;
函数getXDisplay(){
$json=file\u get\u contents('http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls=“.$data.”&pretty=1’;
$json_data=json_decode($json,true);
$this->count=$count=$json_数据[0]['total_count'];
如果(空($count)){
返回'n/a';//是否应为null?
}埃尔