php语言

变量和日期处理的php面试题

时间:2025-05-27 17:02:28 php语言 我要投稿

关于变量和日期处理的php面试题

  变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。下面是小编整理的关于变量和日期处理的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);

【变量和日期处理的php面试题】相关文章:

PHP关于变量和日期处理的面试题04-08

php语言的变量和常量04-02

PHP的变量03-28

PHP时间和日期函数详解03-02

什么是PHP的变量07-29

PHP的变量介绍04-20

PHP变量介绍02-28

PHP变量类型和整型类型细节02-05

PHP时间和日期函数怎么操作08-06