找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1025|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2487

主题

2487

帖子

7391

积分

论坛元老

Rank: 8Rank: 8

积分
7391
跳转到指定楼层
楼主
发表于 2018-2-14 05:43:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            变量相关
PHP变量的内部实现
编程语言的系统类型分为强类型和弱类型两种:
[ol]
  
  •     强类型语言是一旦某个变量被申明为某个类型的变量,在程序运行过程中,就不能将该变量的类型以外的值赋予给它,c/c++/java等语言就属于这类
      
  •     php及ruby,javascript等脚本语言就属于弱类型语言:一个变量可以表示任意的数据类型
    [/ol]
    php变量类型及存储结构
    php在声明或使用变量的时候,并不需要显式指明其数据类型
    php是弱类型语言,这不并表示php没有类型,在php中,存在8种变量类型,可以分为三类:
    [ol]
      
  •     标量类型:boolean,integer,float,string
      
  •     复合类型:array,object
      
  •     特殊类型:resource,NULL
    [/ol]
    变量存储结构
    变量的值存储到一下所示的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经典面试题集锦
  • 8个PHP数组面试题
  • 33道php常见面试题及答案
  • PHP的文件操作与算法实现的面试题示例
  • PHP面试题之文件目录操作
  • PHP经典面试题之设计模式(经常遇到)
  • PHP面试常用算法(推荐)
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端