《PHP实战:PHP的关于变量和日期处理的一些面试题目整理》要点:
本文介绍了PHP实战:PHP的关于变量和日期处理的一些面试题目整理,希望对您有用。如果有疑问,可以联系我们。
PHP应用变量相关
PHP变量的内部实现
编程语言的系统类型分为强类型和弱类型两种:
PHP应用
php变量类型及存储结构
php在声明或使用变量的时候,并不必要显式指明其数据类型
PHP应用php是弱类型语言,这不并表现php没有类型,在php中,存在8种变量类型,可以分为三类:
PHP应用
变量存储布局
变量的值存储到一下所示的zval布局体中.其布局如下:
PHP应用
typedef struct _zval_struct zval;
struct _zval_struct {
zvalue_value value; // 存储变量的值
zend_uint refcount__gc; // 表现引用计数
zend_uchar type; // 变量具体的类型
zend_uchar is_ref_gc; // 表现是否为引用
};
PHP应用
变量的值存储在另外一个结构体zvalue_value中
PHP应用变量类型
zval结构体的type字段便是实现弱类型最关键的字段了,type的值可以为:IS_NULL, IS_BOOL, IS_LONG, IS_DOUBLE, IS_STRING, IS_ARRAY, IS_OBJECT, IS_RESOURCE之一.从字面上就很好理解,他们只是类型的唯一标示,根据类型的不同将不同的值存储到value字段
PHP应用变量值的存储
前面说到变量的值存储在zvalue_value布局体中,布局体定义如下:
PHP应用
typedef union _zvalue_value {
long lval;
double dval;
struct {
char *val;
int len;
} str;
HashTable *ht;
zend_object_value obj;
} _zvalue_value;
PHP应用
日期相关
PHP应用计算两个日期之间的天数
PHP应用
<?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实战:PHP的关于变量和日期处理的一些面试题目整理》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/8816.html