首頁  >  文章  >  後端開發  >  PHP的變數及日期處理案例

PHP的變數及日期處理案例

墨辰丷
墨辰丷原創
2018-06-07 16:35:203217瀏覽

本篇主要介紹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";

總結:以上就是本篇的全部內容,希望對大家的學習有所幫助。

相關推薦:

PHP中的資料結構DS擴充詳解

PHP實作擷取字串中的手機號正規表示式的方法

PHP實作基於SimpleXML產生和解析xml的方法

#

以上是PHP的變數及日期處理案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn