写一个函数交换任意两个变量的值写一个函数将字节数转换成可读的大小 如2048结果为2kb  达到M显示多少M  达到GB显示多少GB写一个函数将任意关联数组中的下标转换为全局变量,如果本下标名与现有的全局变量名相同则不处理array('name'=>'abc','age'=>12) $name,$age写一个函数实现range函数功能  将使用ord(字符),chr(数字)函数  ord('a')=>97 chr(97)=>'a'

解决方案 »

  1.   

    好难啊,$arr = array('name'=>'abc','age'=>12);foreach( $arr as $k => $v) {
    if(!isset($$k)){
    global $$k;
    }
    }
      

  2.   

    1.$a = 1;
    $b = 2;jiaohuan($a, $b);echo $a;
    echo $b;function jiaohuan(&$a, &$b){
        $t = $a;
        $a = $b;
        $b = $t;
    }
    2.echo conversion(2048);//字节换算
    function conversion($size) {
        $kb = 1024; // 1KB(Kibibyte,千字节)=1024B,
        $mb = 1024 * $kb; //1MB(Mebibyte,兆字节,简称“兆”)=1024KB,
        $gb = 1024 * $mb; // 1GB(Gigabyte,吉字节,又称“千兆”)=1024MB,
        $tb = 1024 * $gb; // 1TB(Terabyte,万亿字节,太字节)=1024GB,
        $pb = 1024 * $tb; //1PB(Petabyte,千万亿字节,拍字节)=1024TB,
        $fb = 1024 * $pb; //1EB(Exabyte,百亿亿字节,艾字节)=1024PB,
        $zb = 1024 * $fb; //1ZB(Zettabyte,十万亿亿字节,泽字节)= 1024EB,
        $yb = 1024 * $zb; //1YB(Yottabyte,一亿亿亿字节,尧字节)= 1024ZB,
        $bb = 1024 * $yb; //1BB(Brontobyte,一千亿亿亿字节)= 1024YB
     
        if ($size < $kb) {
            return $size . " B";
        } else if ($size < $mb) {
            return round($size / $kb, 2) . " KB";
        } else if ($size < $gb) {
            return round($size / $mb, 2) . " MB";
        } else if ($size < $tb) {
            return round($size / $gb, 2) . " GB";
        } else if ($size < $pb) {
            return round($size / $tb, 2) . " TB";
        } else if ($size < $fb) {
            return round($size / $pb, 2) . " PB";
        } else if ($size < $zb) {
            return round($size / $fb, 2) . " EB";
        } else if ($size < $yb) {
            return round($size / $zb, 2) . " ZB";
        } else {
            return round($size / $bb, 2) . " YB";
        }
     
    }
    3.$arr = array('name'=>'abc','age'=>12);foreach($arr as $k=>$v){
        if(!isset($GLOBALS[$k])){
            $GLOBALS[$k] = $v;
        }
    }print_r($GLOBALS);
    4.$a = _range(1,50,2);
    $b = _range('a','z');print_r($a);
    print_r($b);function _range($first, $second, $step=1){
        $flag = 0;
        if(is_string($first)){
            $flag = 1;
            $first = ord($first);
        }    if(is_string($second)){
            $second = ord($second);
        }    $tmp = array();
        for($i=$first; $i<=$second; $i=$i+$step){
            if($flag==1){
                array_push($tmp, chr($i));
            }else{
                array_push($tmp, $i);
            }
        }    return $tmp;
    }
      

  3.   

    写一个函数将任意关联数组中的下标转换为全局变量,如果本下标名与现有的全局变量名相同则不处理array('name'=>'abc','age'=>12) $name,$age
    建议使用extract()此函数
    写一个函数交换任意两个变量的值
    建议使用位预算,代码如下
    $a = 1; 
    $b = 2;
    $b = $a ^ $b;
    $a = $b ^ $a;
    var_dump($a);
    $b = $a ^ $b;
    var_dump($b);这两道题..没必要看上面的答案感觉写法优点复杂化
      

  4.   

    顺便问一下版主,使用命名空间时:namespace csdn;
    use  city\beijing;  第一种

    use \city\beijing;  第二种
    的区别,一个相对命名空间,一个根命名空间,这个我是知道的,难道第一种的找法是 在   csdn\city\beijing  命名空间下找吗?
      

  5.   

    2、function foo($n) {
      $d = array('', 'K', 'M', 'G', 'T', 'P');
      $e = intval(log($n, 2) / 10);
      return round($n/pow(2, $e*10), 2) . $d[$e].'b';
    }
    编程只是把你的做法用计算机语言描述出来
    如果你本来就不知道怎么做,那么在熟练也是枉然
      

  6.   

    <?php 
    //写一个函数交换任意两个变量的值
    $a = "hello";$b="world";
    echo $a," ",$b;
    echo "\n";
    list($b, $a) = array($a, $b);
    echo $a," ",$b;
    echo "\n";//写一个函数将字节数转换成可读的大小 如2048结果为2kb  达到M显示多少M  达到GB显示多少GB
    function size_human_readable($size, $diglit=2){
        $unit = array("", "K", "M", "G", "T", "P");
        
        $u = floor(log($size, 1024));
        
        $u = $u > count($unit)-1 ? count($unit)-1 : $u;
        
        return array('ret'=>round($size/pow(1024, $u), $diglit), 'unit'=>$unit[$u]);
    }print_r(size_human_readable(24124));//写一个函数将任意关联数组中的下标转换为全局变量,如果本下标名与现有的全局变量名相同则不处理$GLOBALS['k'] = 999;$r = array('i'=>123, 'j'=>456, 'k'=>789);extract($r, EXTR_SKIP);echo $GLOBALS['i'], "\t", $GLOBALS['j'], "\t", $GLOBALS['k'], "\n"; //写一个函数实现range函数功能  将使用ord(字符),chr(数字)函数  ord('a')=>97 chr(97)=>'a'
    function _range($low, $high, $step = 1)
    {
        $arr = array();
        $step = (abs($step) > 0) ? abs($step) : 1;
        $sign = ($low <= $high) ? 1 : - 1;
        if (is_numeric($low) && is_numeric($high)) {
            for ($i = (float) $low; $i * $sign <= $high * $sign; $i += $step * $sign)
                $arr[] = $i;
        } else 
            if (preg_match('/[A-Z]{1}/i', $low) && preg_match('/[A-Z]{1}/i', $high)) {
                
                $low = ord($low);
                $high = ord($high);
                for ($i = $low; $i * $sign <= $high * $sign; $i += $step * $sign) {
                    $arr[] = chr($i);
                }
            } else {
                return false;
            }
        return $arr;
    }print_r(_range(0,10,2));
    print_r(_range('A','Z'));