PHP的變數及日期處理案例

來源:互聯網
上載者:User
本篇文章主要介紹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實現提取字串中的手機號Regex的方法

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.