当前位置:首页 > PHP教程 > php面试题 > 列表

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结构体中.其结构如下:

  1. typedef struct _zval_struct zval;  
  2.    
  3. struct _zval_struct {  
  4.   zvalue_value value; // 存储变量的值  
  5.   zend_uint refcount__gc; // 表示引用计数  
  6.   zend_uchar type;  // 变量具体的类型  
  7.   zend_uchar is_ref_gc;  // 表示是否为引用  
  8. };  

变量的值存储在另外一个结构体zvalue_value中

变量类型

zval结构体的type字段就是实现弱类型最关键的字段了,type的值可以为:IS_NULL, IS_BOOL, IS_LONG, IS_DOUBLE, IS_STRING, IS_ARRAY, IS_OBJECT, IS_RESOURCE之一.从字面上就很好理解,他们只是类型的唯一标示,根据类型的不同将不同的值存储到value字段

变量值的存储

前面说到变量的值存储在zvalue_value结构体中,结构体定义如下:

  1. typedef union _zvalue_value {  
  2.   long lval;  
  3.   double dval;  
  4.   struct {  
  5.     char *val;  
  6.     int len;  
  7.   } str;  
  8.   HashTable *ht;  
  9.   zend_object_value obj;  
  10. } _zvalue_value;  

日期相关

计算两个日期之间的天数

  1. <?php  
  2.     
  3.  /**  
  4.   * 求两个日期之间相差的天数(针对1970年1月1日之后,求之前可以采用泰勒公式)  
  5.   * @param string $day1  
  6.   * @param string $day2  
  7.   * @return number  
  8.   */ 
  9.  function diffBetweenTwoDays ($day1$day2)  
  10.  {  
  11.    $second1 = strtotime($day1);  
  12.    $second2 = strtotime($day2);  
  13.       
  14.    if ($second1 < $second2) {  
  15.      $tmp = $second2;  
  16.      $second2 = $second1;  
  17.      $second1 = $tmp;  
  18.    }  
  19.       
  20.    return ($second1 - $second2) / 86400;  
  21.  }  
  22.     
  23.  $day1 = "2013-07-27";  
  24.  $day2 = "2013-08-04";  
  25.     
  26.  $diff = diffBetweenTwoDays($day1$day2);  
  27.  echo $diff."\n";

Tags: PHP变量 PHP日期 PHP面试题目

分享到: