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

《PHP实战:PHP的关于变量和日期处理的一些面试题目整理》要点:
本文介绍了PHP实战:PHP的关于变量和日期处理的一些面试题目整理,希望对您有用。如果有疑问,可以联系我们。

PHP应用变量相关
PHP变量的内部实现
编程语言的系统类型分为强类型和弱类型两种:

  1.     强类型语言是一旦某个变量被申明为某个类型的变量,在程序运行过程中,就不能将该变量的类型以外的值赋予给它,c/c++/java等语言就属于这类
  2.     php及ruby,javascript等脚本语言就属于弱类型语言:一个变量可以表示任意的数据类型


php变量类型及存储结构
php在声明或使用变量的时候,并不必要显式指明其数据类型

php是弱类型语言,这不并表现php没有类型,在php中,存在8种变量类型,可以分为三类:

  1.     标量类型:boolean,integer,float,string
  2.     复合类型:array,object
  3.     特殊类型: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的关于变量和日期处理的一些面试题目整理》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

相关文章

前段时间专心面过腾讯,经过了N轮的技术面,结果还是挂了,但...
1)tcp三次握手的过程,accept发生在三次握手哪个阶段?2)Tc...
1.get,post 的区别 1、GET在浏览器回退时是无害的,而POST会...
1、优化 MYSQL 数据库的方法 (1) 选取最适用的字段属性,尽可...
程序员找工作必备 PHP 基础面试题​ 程序员找工作必备 PHP 基...
1、我们知道&#160;autoload 可以实现类的自动载入,如何...