PHP的关于变量和日期处理的一些面试题目整理
发布:smiling 来源: PHP粉丝网 添加日期:2021-06-16 10:46:10 浏览: 评论:0
这篇文章主要介绍了PHP的关于变量和日期处理的一些面试题目整理,也是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";
Tags: PHP变量 PHP日期 PHP面试题目
- 上一篇:33道php常见面试题及答案
- 下一篇:PHP的文件操作与算法实现的面试题示例
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)