设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 运营中心 > 交互 > 正文

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

发布时间:2021-07-10 05:23 所属栏目:31 来源:网络整理
导读:变量相关PHP变量的内部实现 编程语言的系统类型分为强类型和弱类型两种: 强类型语言是一旦某个变量被申明为某个类型的变量,在程序运行过程中,就不能将该变量的类型以外的值赋予给它,c/c++/java等语言就属于这类 php及ruby,javascript等脚本语言就属于弱类型

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

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结构体中,结构体定义如下:

日期相关

计算两个日期之间的天数

/**

  • 求两个日期之间相差的天数(针对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";

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读