PHP 常量

常量是单个值的标识符(名称)。在脚本中无法改变该值。

有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。

注释:与变量不同,常量贯穿整个脚本是自动全局的。

PHP常量的两种定义方式

  • const

    const 是语言结构,效率更高
<?php
const USERNAME = 'chenxr';
echo USERNAME;
echo const('USERNAME');
?>
  • define()

    define() 是函数,不能用于类常量的定义
<?php
define('USERNAME','chenxr');
echo USERNAME;
?>

魔术常量

PHP中有八个魔术常量,它们的值会随着它们在代码中的位置的改变而改变。这些特殊的常量不区分大小写。

  • __FILE__:返回当前文件的绝对路径(包含文件名)。
  • __LINE__:返回当前行号,也可以写成__line__。
  • __DIR__:返回当前文件的绝对路径,不包含文件名,等价于dirname(__FILE__)
  • __FUNCTION__:返回当前函数(或方法)的名称。
  • __CLASS__:返回当前的类名(包括该类的作用区域或命名空间)。
  • __TRAIT__:返回当前的trait名称(包括该trait的作用区域或命名空间)。
  • __METHOD__:返回当前的方法名(包括类名)
  • __NAMESPACE__:返回当前文件的命名空间的名称。

超全局变量

PHP中常用的超全局数组:

  • $GLOBALS:引用全局作用域中可用的全部变量
  • $_SERVER :服务器和执行环境信息
  • $_GET
  • $_POST
  • $_REQUEST (尽量不要用)
  • $_SESSION
  • $_COOKIE
  • $_FILES :HTTP 文件上传变量
  • $_ENV :环境变量

其中,$_SERVER:

  • $_SERVER['SERVER_ADDR']-服务器ip
  • $_SERVER['SERVER_NAME']-服务器名
  • $_SERVER['REQUEST_TIME']-请求开始时的时间
  • $_SERVER['QUERY_STRING']-query string(查询字符串),如果有的话,通过它进行页面访问。
  • $_SERVER['HTTP_REFERER']-引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。
  • $_SERVER['HTTP_USER_AGENT']-当前请求头中 User-Agent: 项的内容,如果存在的话。该字符串表明了访问该页面的用户代理的信息。一个典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。
  • $_SERVER['REMOTE_ADDR']-浏览当前页面的用户的 IP 地址。
  • $_SERVER['REQUEST_URI']-URI 用来指定要访问的页面。例如 “/index.html”。
  • $_SERVER['PATH_INFO']-包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息,如果存在的话。例如,如果当前脚本是通过 URL http://www.example.com/php/path_info.php/some/stuff?foo=bar 被访问,那么 $_SERVER['PATH_INFO'] 将包含 /some/stuff

PHP数据类型

三大数据类型:标量、复合、特殊

标量:是数据结构中最基本单元,只能储存一个数据,包括boolean,string,integer,float

  • 浮点数不能用于比较运算(浮点数的加减运算有误差)
  • 布尔类型中 FALSE 的七中情况:整型0(0),浮点数0(0.0),字符串0('0'),false,空数组(array()),NULL

复合:包括数组array和对象object

特殊:NULL 和 resource

  • NULL 的三种情况:
  1. 直接赋值为NULL
  2. 未定义
  3. unset()销毁

PHP常量和数据类型考察点的更多相关文章

  1. iOS Foundation 框架概述文档:常量、数据类型、框架、函数、公布声明

    iOS Foundation 框架概述文档:常量.数据类型.框架.函数.公布声明 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业 ...

  2. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  3. php面试专题---2、常量及数据类型考点

    php面试专题---2.常量及数据类型考点 一.总结 一句话总结: 变量为null和变量判断为false的情况需要仔细注意下 1.PHP中字符串可以使用哪三种定义方法以及各自的区别是什么? 单引号:不 ...

  4. PHP面试 PHP基础知识 二(常量及数据类型)

    常量及数据类型 PHP八种数据类型 四种标量类型 字符串(string).布尔(boolean).浮点(float/double).整型(integer) 两种复合类型 数组(array).对象(ob ...

  5. Swift学习--常量.变量.数据类型的使用(一)

    一.Swift中的常量和变量 /* Swift 中定义常量和变量用let/var let 代表定义一个常量 var 代表定义一个变量 Swift 中代表定义常量和变量不需要写数据类型,编译器辉根据我们 ...

  6. 1.0 基础、标示符、常量、数据类型(enum 枚举,struct 结构体)、操作符、循环、数组

    一.程序 现实生活中,程序是指完成某些事务的一种既定方法和过程,可以把程序看成是一系列动作执行过程的描述. 在计算机世界,程序是指令,即为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集 ...

  7. golang语法学习(一):变量,常量以及数据类型

    学习一门新的语言肯定是要从他的主要的语法開始,语法构成了整个程序设计的基础,从语法中我们也能够看到这门语言的一些特性.可是话说回来.语法这东西,不同的语言大同小异,所以这也对语法的记忆造成了一定的难度 ...

  8. java--变量,常量,数据类型的声明及使用

    一.概念: 变量是指内存中的一个存储区域,该区域要有自己的名称(变量名).类型(数据类型),该区域的数据可以在同一数据类型的范围内不断变化值: 二.变量的使用注意事项: 1.Java中的变量必须声明后 ...

  9. python常量 变量 数据类型 注释 交互 if语句

    1.认识python python的创始人吉多·范罗苏姆(Guido van Rossum )龟叔在89年圣诞节开始开发python python属于解释型语言,强类型定义语言. 编译型/解释型:编译 ...

随机推荐

  1. MySQL 5.7 Keywords and Reserved Words

    https://dev.mysql.com/doc/refman/5.7/en/keywords.html#keywords-5-7-detailed-T

  2. ABAP 读取FTP文件

    VALUE '172.168.1.250'. VALUE 'username'. VALUE 'password'. ."密钥 CONSTANTS: cns_rfcdest LIKE rfc ...

  3. RK3288-OTA编译失败解决办法【转】

    本文转载自:http://blog.csdn.net/wangxueming/article/details/52448630 在执行make  otapackage的时候出现该错误,是由于drmsi ...

  4. linux进程编程入门

    1.进程的创建与操作 任务描述: 在父进程中创建一个全局变量,一个局部变量,并赋予初始值,用fork函数创建子进程.在子进程中对父进程的变量进行自加操作,并且输出变量值,然后父进程睡眠一段时间 各进程 ...

  5. add environment path to powershell

    https://4sysops.com/archives/use-powershell-to-execute-an-exe/ https://stackoverflow.com/questions/7 ...

  6. action 与 action 之间的跳转

    这个要看你的两个action是不是在通一个package下了 <!-- 相同package下调用其它action --><action name="loginUser&qu ...

  7. mac系统下安装mysql步骤

    1.下载mysql-5.7.13-osx10.11-x86_64.dmg安装包,并点击dmg安装包进行安装 2.安装完成后弹出如以下提示信息: 2016-06-23T01:14:48.649253Z ...

  8. Spring-AOP解析

    策略模式:选择动态代理还是CGLIB方式: 1.这种在运行时,动态地将代码切入到类的指定方法.指定位置上的编程思想就是面向切面的编程. 2.AOP基本上是通过代理机制实现的 3.写好验证用户的代码,然 ...

  9. javascript 中==与===

    1.==相等运算符 1.1如果操作数具有相同的类型,则判断其等同性,如果两个数的值相等,则返回true(相等),否则返回 false (不相等) 1.2如果两个操作数类型不同,则按如下规则: null ...

  10. Android buffer_handle_t的定义(转载)

    转自:http://www.cnblogs.com/eustoma/archive/2012/06/08/2541416.html 1. buffer_handle_t 文件位置:system\cor ...