导航:首页 > 编程语言 > php获取变量的类型

php获取变量的类型

发布时间:2023-08-27 05:35:36

‘壹’ php语句的结构与变量类型

php语句:
一个php文件通常包含HTML标记和一些php语句段。
一个php语句段从<?php 标签开始,到 ?> 结束。php标签用于分割其他php语句段和html,php语句写在两个标签中间,可以写多行PHP语句。
注意:php语句以分号结尾,如果没有分号,则会继续分析文件,直到下一个分号,并忽略中间的空格和换行。
php中,回车换行,空格,制表符都被视为空格,php解析器会当它们不存在。
例如:
<?php
echo 'Hello World';
?>

php的变量类型:
php一共八种基本的变量类型,包括如下:
四种标量类型:
boolean (布尔型)
integer (整型)
float (浮点型, 也称作 double)
string (字符串)
两种复合类型:
array (数组)
object (对象)
最后是两种特殊类型:
resource(资源)
NULL(NULL)
另外php还有一些伪类型:
mixed
number
callback

‘贰’ PHP变量名、变量值、类型

变量名 =》 zval

变量值 =》zend_value

问题:

引用计数

变量传递,变量赋值

变量的基础结构

变量值:zend_value 

typedef union _zend_value {

  zend_long        lval;            /* long value */

  double            dval;            /* double value */

  zend_refcounted  *counted;

  zend_string      *str;

  zend_array      *arr;

  zend_object      *obj;

  zend_resource    *res;

  zend_reference  *ref;

  zend_ast_ref    *ast;

  zval            *zv;

  void            *ptr;

  zend_class_entry *ce;

  zend_function    *func;

  struct {

      uint32_t w1;

      uint32_t w2;

  } ww;

} zend_value;

变量名:_zval

typedef struct _zval_struct    zval;

struct _zval_struct {

  zend_value        value;        /* value */

  union {

      struct {

        ZEND_ENDIAN_LOHI_4(

            zend_uchar    type,          /* active type */

            zend_uchar    type_flags,

            zend_uchar    const_flags,

            zend_uchar    reserved)        /* call info for EX(This) */

      } v;

      uint32_t type_info;

  } u1;

  union {

      uint32_t    var_flags;

      uint32_t    next;                /* hash collision chain */

      uint32_t    cache_slot;          /* literal cache slot */

      uint32_t    lineno;              /* line number (for ast nodes) */

      uint32_t    num_args;            /* arguments number for EX(This) */

      uint32_t    fe_pos;              /* foreach position */

      uint32_t    fe_iter_idx;          /* foreach iterator index */

  } u2;

};

变量类型【type】

/* regular data types */

#define IS_UNDEF              0

#define IS_NULL                  1

#define IS_FALSE              2

#define IS_TRUE                  3

#define IS_LONG                  4

#define IS_DOUBLE              5

#define IS_STRING              6

#define IS_ARRAY              7

#define IS_OBJECT              8

#define IS_RESOURCE                9

#define IS_REFERENCE            10

/* constant expressions */

#define IS_CONSTANT                11

#define IS_CONSTANT_AST            12

/* fake types */

#define _IS_BOOL              13

#define IS_CALLABLE                14

/* internal types */

#define IS_INDIRECT                15

#define IS_PTR                17

true 和 flase 没有zend_value 结构, 直接通过type来区分,zend_long和double的变量指直接存储在_zend_value中,不需要额外的value指针。

‘叁’ php中哪个语句可以输出变量类型

var_mp和gettype函数均可输出变量类型,用法如下:

$bl='example';

var_mp($bl);

echo '变量类型为:'.gettype($bl);

‘肆’ php中如何读取环境变量

PHP中的环境变量可以通过 $_SERVER 获取

$_SERVER是一个包含服务器端相关信息的PHP全局环境变量,在PHP4.1.0之前的版本使用$HTTP_SERVER_VARS。

下面是详细的说明及用法:

$_SERVER['PHP_SELF'] 当前正在执行脚本的文件名,与 document root相关。在FORM表单中,如执行文件是本身,你可以在ACTION中使用$_SERVER['PHP_SELF'],好处是当执行文件名有变动时可以不去频繁替换ACTION中的文件名。

$_SERVER['SERVER_NAME'] 当前运行的PHP程序所在服务器主机的名称。

$_SERVER['REQUEST_METHOD'] 访问页面时的请求方法,即GET、HEAD、POST、PUT。

$_SERVER['DOCUMENT_ROOT'] 当前运行的PHP程序所在的文档根目录。也就是PHP.INI文件中的定义。

$_SERVER['HTTP_REFERER'] 链接到当前页面的前一页面的URL地址。在页面跳转功能中非常有用。

$_SERVER['REMOTE_ADDR'] 正在浏览当前页面访问者的IP地址。

$_SERVER['REMOTE_HOST'] 正在浏览当前页面用户的主机名。

$_SERVER['REMOTE_PORT'] 正在游览的用户连接到服务器时所使用的端口。

$_SERVER['SCRIPT_FILENAME'] 当前执行脚本的绝对路径名。

$_SERVER['SERVER_PORT'] 服务器所使用的端口

$_SERVER['SCRIPT_NAME'] 包含当前脚本的路径。这在页面需要指向自己时非常有用。

$_SERVER['REQUEST_URI'] 访问此页面所需的URI。如“/index.html”。

$_SERVER['PHP_AUTH_USER'] 应用在HTTP用户登录认证功能中,这个变量是用户输入的用户名。

$_SERVER['PHP_AUTH_PW'] 应用在HTTP用户登录认证功能中,这个变量便是用户输入的密码。

$_SERVER['AUTH_TYPE'] 应用在HTTP用户登录认证功能中,这个变量便是认证的类型。

备注:上述提到的这些PHP全局环境变量,在php.ini中的register_globals设置为on时,这些变量在所有PHP程序脚本中都可用,也就是$_SERVER数组被分离了。当然为了安全考虑,还是不要将register_globals打开为好。

‘伍’ php的数据类型分为哪两类

变量的定义:在整个php脚本中可以发生改变的量叫做变量

变量命名的规则:
①所有的变量必须用$ 来修饰
②由字母数字下划线组成
③不能用数字开头
④可以是中文,但一般不用,不能包含特殊字符
⑤变量名区分大小写
四种标量数据类型:整型、实型(浮点型) 字符型布尔型
两种特殊类型:资源 NULL
两种复合数据类型:数组和对象
常量定义:在整个程序运行过程中其值不发生改变的量,切记常量不加$
例如:define(“A”,10); echo A; 输出10
Defined(常量名) //检测常量是否被设置
常量可以一旦被定义不能被修改,在整个运行过程中不可以改变的量
变量可 以改变的量,常量占内存,变量不占内存 因为变量在脚本执行结束时会自动释放

阅读全文

与php获取变量的类型相关的资料

热点内容
java正则网址 浏览:775
程序员上班可不可以自学 浏览:425
空调压缩机排空气视频 浏览:283
centos72nginxphp 浏览:184
游戏平台用什么服务器好 浏览:753
保密柜里的图片是加密文件吗 浏览:909
php判断最后一个字符 浏览:635
pdf脑区 浏览:635
at命令已弃用 浏览:490
买点卖出指标源码 浏览:612
36位单片机 浏览:428
英雄联盟山东服务器地址 浏览:212
sd服务器什么意思 浏览:617
thinkphp去indexphp 浏览:62
电脑显示连接未加密 浏览:193
zao服务器怎么修改 浏览:244
php使用jsapi调起支付 浏览:891
vivo云服务器网 浏览:722
cmd远程连接命令行 浏览:961
黑马python讲义 浏览:133