程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP的關於變量和日期處理的一些面試題目整理

PHP的關於變量和日期處理的一些面試題目整理

編輯:PHP綜合

變量相關
PHP變量的內部實現
編程語言的系統類型分為強類型和弱類型兩種:

  1.     強類型語言是一旦某個變量被申明為某個類型的變量,在程序運行過程中,就不能將該變量的類型以外的值賦予給它,c/c++/java等語言就屬於這類
  2.     php及ruby,javascript等腳本語言就屬於弱類型語言:一個變量可以表示任意的數據類型


php變量類型及存儲結構
php在聲明或使用變量的時候,並不需要顯式指明其數據類型

php是弱類型語言,這不並表示php沒有類型,在php中,存在8種變量類型,可以分為三類:

  1.     標量類型:boolean,integer,float,string
  2.     復合類型:array,object
  3.     特殊類型:resource,NULL


變量存儲結構
變量的值存儲到一下所示的zval結構體中.其結構如下:

  typedef struct _zval_struct zval; 
   
  struct _zval_struct { 
    zvalue_value value; // 存儲變量的值 
    zend_uint refcount__gc; // 表示引用計數 
    zend_uchar type;  // 變量具體的類型 
    zend_uchar is_ref_gc;  // 表示是否為引用 
  }; 


變量的值存儲在另外一個結構體zvalue_value中

變量類型
zval結構體的type字段就是實現弱類型最關鍵的字段了,type的值可以為:IS_NULL, IS_BOOL, IS_LONG, IS_DOUBLE, IS_STRING, IS_ARRAY, IS_OBJECT, IS_RESOURCE之一.從字面上就很好理解,他們只是類型的唯一標示,根據類型的不同將不同的值存儲到value字段

變量值的存儲
前面說到變量的值存儲在zvalue_value結構體中,結構體定義如下:

  typedef union _zvalue_value { 
    long lval; 
    double dval; 
    struct { 
      char *val; 
      int len; 
    } str; 
    HashTable *ht; 
    zend_object_value obj; 
  } _zvalue_value; 


日期相關

計算兩個日期之間的天數
  

 <?php 
   
  /** 
   * 求兩個日期之間相差的天數(針對1970年1月1日之後,求之前可以采用泰勒公式) 
   * @param string $day1 
   * @param string $day2 
   * @return number 
   */ 
  function diffBetweenTwoDays ($day1, $day2) 
  { 
    $second1 = strtotime($day1); 
    $second2 = strtotime($day2); 
     
    if ($second1 < $second2) { 
      $tmp = $second2; 
      $second2 = $second1; 
      $second1 = $tmp; 
    } 
     
    return ($second1 - $second2) / 86400; 
  } 
   
  $day1 = "2013-07-27"; 
  $day2 = "2013-08-04"; 
   
  $diff = diffBetweenTwoDays($day1, $day2); 
  echo $diff."\n"; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved