雖然我是個(gè)PHP新手(沒拿PHP做過事),但是今天看到一段代碼,忍不住修改了幾行。

          代碼如下:
          class runTime {
              var $StartTime = 0;
              var $StopTime = 0;
              var $TimeSpent = 0;

              function start(){
                  $this->StartTime = microtime();
              }

              function stop(){
                  $this->StopTime = microtime();
              }

              function spent() {
                  if ($this->TimeSpent) {
                      return $this->TimeSpent;
                  } else {
                      $StartMicro = substr($this->StartTime,0,10);
                      $StartSecond = substr($this->StartTime,11,10);
                      $StopMicro = substr($this->StopTime,0,10);
                      $StopSecond = substr($this->StopTime,11,10);
                      $start = floatval($StartMicro) + $StartSecond;
                      $stop = floatval($StopMicro) + $StopSecond;
                      $this->TimeSpent = $stop - $start;
                      return round($this->TimeSpent,8);
                  }
              } // end function
          }

          1。為什么說封裝欠妥?

          在使用過程中,我發(fā)現(xiàn)那幾個(gè)類的屬性,沒必要作為var (public )形式出現(xiàn),既然用了class,那么就遵照下面向?qū)ο蟮囊恍┗疽?guī)則,這幾個(gè)變量完全可以用private 訪問控制。 

          2。 microtime 用得不夠好?

          手冊上關(guān)于microtime 的一些說明:

          定義和用法

          microtime() 函數(shù)返回當(dāng)前 Unix 時(shí)間戳和微秒數(shù)。

          如果調(diào)用時(shí)不帶可選參數(shù),本函數(shù)以 "msec sec" 的格式返回一個(gè)字符串,其中 sec 是自 Unix 紀(jì)元(0:00:00 January 1, 1970 GMT)起到現(xiàn)在的秒數(shù),msec 是微秒部分。字符串的兩部分都是以秒為單位返回的。

           


          在PHP5 以上版本,是可以接受參數(shù)true,這樣就能直接返回浮點(diǎn)數(shù),而且效率會(huì)比現(xiàn)在這樣做高不少。

          下面是網(wǎng)上找到的一段小代碼,可以做參考:

          <?php 
          function microtime_float3(){ 
              return microtime(true); 


          function microtime_float2(){ 
              ifPHP_VERSION > 5){ 
                  return microtime(true); 
              }else
                  list($usec$sec) = explode(" ", microtime()); 
                  return ((float)$usec + (float)$sec); 
              } 


          function microtime_float(){ 
              list($usec$sec) = explode(" ", microtime()); 
              return ((float)$usec + (float)$sec); 


          function runtime($t1){ 
              return number_format((microtime_float() - $t1)*1000, 4).'ms'; 


          $t1 = microtime_float(); 
          for($i=0;$i<10000;$i++){ 
              microtime_float(); 

          echo "microtime_float====="; 
          echo runtime($t1).'<br>'; 
          $t1 = microtime(true); 

          for($i=0;$i<10000;$i++){ 
              microtime(true); 

          echo "microtime_true====="; 
          echo runtime($t1).'<br>'; 
          $t1 = microtime(true); 

          for($i=0;$i<10000;$i++){ 
              microtime_float2(); 


          echo "microtime_float2====="; 
          echo runtime($t1).'<br>'; 
          $t1 = microtime(true); 

          for($i=0;$i<10000;$i++){
              microtime_float3(); 

          echo "microtime_float3====="; 
          echo runtime($t1).'<br>'; 
          ?> 

          本機(jī)winxp運(yùn)行結(jié)果: 
          microtime_float=====109.5631ms 
          microtime_true=====38.8160ms 
          microtime_float2=====52.7902ms 
          microtime_float3=====45.0699ms 
          Linux上運(yùn)行結(jié)果: 
          microtime_float=====47.2510ms 
          microtime_true=====9.2051ms 
          microtime_float2=====16.3319ms 
          microtime_float3=====12.2800ms 
          posted on 2011-11-15 00:17 -274°C 閱讀(2158) 評論(0)  編輯  收藏 所屬分類: PHP

          常用鏈接

          留言簿(21)

          隨筆分類(265)

          隨筆檔案(242)

          相冊

          JAVA網(wǎng)站

          關(guān)注的Blog

          搜索

          •  

          積分與排名

          • 積分 - 914107
          • 排名 - 40

          最新評論

          主站蜘蛛池模板: 库尔勒市| 颍上县| 临夏市| 石柱| 偃师市| 香港 | 庆城县| 行唐县| 汕头市| 宁武县| 遂宁市| 西和县| 太保市| 梨树县| 辉县市| 驻马店市| 游戏| 雅安市| 县级市| 科尔| 叙永县| 陆川县| 兰溪市| 土默特左旗| 开原市| 涡阳县| 鄂尔多斯市| 太和县| 刚察县| 修文县| 南昌市| 沙湾县| 民县| 伊吾县| 峡江县| 元朗区| 鸡西市| 习水县| 浪卡子县| 宿松县| 宁阳县|