本篇主要介紹PHP的變數及日期處理案例,有興趣的朋友參考下,希望對大家有幫助。
變數相關
PHP變數的內部實作程式語言的系統型別分為強型別與弱型別兩種:
強類型語言是一旦某個變數被申明為某個類型的變數,在程式運行過程中,就不能將該變數的型別以外的值賦予給它,c/c /java等語言就屬於這類
php及ruby,javascript等腳本語言就屬於弱型別語言:一個變數可以表示任意的資料型別
php變數類型及儲存結構php在宣告或使用變數的時候,並不需要明確指明其資料型別
php是弱型別語言,這不並表示php沒有型別,在php中,存在8種變數型別,可分為三類:
標量類型:boolean,integer,float,string
# 複合型別:array ,object
特殊類型: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的變數及日期處理案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!