A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > PHP的关于变量和日期处理的一些面试题目整理

PHP的关于变量和日期处理的一些面试题目整理

时间:2015-08-10 16:11作者:yezheng人气:33

 变量相关
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,关于,变量,日期,处理,一些,面试,题目,整理,变量

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号