php简明手册

# **PHP简明手册**

## **变量 和 常量**

> 1. 变量和常量是PHP中最基本的数据存储单元,它们可以存储不同类型的数据;

> 2. PHP的变量或常量的数据类型由程序的上下问决定,跟强类型语言(如:C等)由很大不同!

--------------------------------------------------------------------------------

### 什么是变量?

1. 变量是用于临时存储值的容器;

2. 这些值可以是数字、文本,或者复杂得多的排列组合;

3. 变量又是指在程序的运行过程中随时可以发生变化的量,是程序中数据临时存放的场所;

4. 简而言之:变量是用于跟踪几乎所有类型信息的简单工具!

5. PHP 中的变量是用一个美元符号($)后面跟变量名来表示,变量名是区分大小写的。

- 变量名与PHP中其它的标签一样遵循相同的规则,一个有效的变量名由字母或下划线开头,后面跟上任意数量的字母、数字、或者下划线

- 按照正则表达式来表述php变量名 `[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*`

- $this 是一个特殊的变量,它不能被赋值

- php 提供了大量的预定义变量

- 许多变量依赖于运行的服务器的版本和设置,及其它因素

--------------------------------------------------------------------------------

### 什么式常量?

1. 常量是用于一些数据计算中固定的数值;

2. 常量是一个简单值的标识符(名字);

3. 常量申明的类型只能是标量数据(`boolean` `integer` `float` `string`);

4. 在程序执行期间一个常量一旦被定义,就不能再改变或者取消定义(除了所谓的魔术常量,它们其实不是常量);

5. 常量默认为大小写敏感。传统上常量标识符总是大写的。

- 按照正则表达式来表述php常量名 `[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*`

6. 常量的作用于是全局的(这是用它的主要原因)

- 可以在脚本的任何地方什么和访问到常量

7. PHP 中可以用 `define()` 函数来定义常量:

- php 5.3 以后可以使用const关键字在类定义之外定义常量

- php 中常量不仅可以自定义,而且php默认提供了大量预定定义常量

- php 中也提供的一些比较实用的 魔术常量(它们其实不是常量)

--------------------------------------------------------------------------------

### 常量与变量有哪些区别?

1. 常量前面没有美元符号($);

2. 常量只能使用 `define()` 函数定义,而不能通过赋值语句;

3. 常量可以不用理会变量的作用域,而在任何地方定义和访问;

4. 常量一旦定义就不能被重新定义或取消定义;

5. 常量的值只能是标量(`boolean` `integer` `float` `string`);

--------------------------------------------------------------------------------

### **变量的范围**

> 1. 变量的范围也就是它的生效范围

> 2. 大部分的 php 变量只有一个单独的使用范围,包含了 `include` `require` 引入的文件;

> 3. 当一个变量执行赋值动作后,会随着申明区域位置的差异而有不同的使用范围;

> 4. 大致上来说:变量会依据申明的位置分为局部变量和全局变量两种。

#### **局部变量**

1. 局部变量也称内部变量,是在函数内部申明的变量;

- 作用域仅限于函数内部,离开该函数后再使用这种变量是非法的

2. 为申明函数设置的参数因为只能在本函数的内部使用,所以也是局部变量;

- `func_test("参数1", "参数2");`

- 函数的参数具体数值从函数外部获得(函数被调用传入的值),作用域仅限于函数内部

- 直接在函数中申明的变量只能在内部被赋值,作用域仅限于函数内部

3. 每次函数被调用时,函数内部的变量才被申明,执行完毕后函数内部的变量都被释放。

#### **全局变量**

1. 全部变量也称外部变量,是在函数外部定义的;

- 作用域:从变量定义出开始,到本程序文件的末尾

2. php中的全局变量与其它变成语言不同

- 在php中,由于函数可以视为单独的程序片段,所以局部变量会覆盖全局变量的能见度,因此在函数中无法直接调用全局变量

3. 函数如何使用全局变量?

- 在函数内部利用 `global` 关键字定义指定的全局变量:

```php

- `预定义变量` 又称 `超全局变量` `超全局数组`

> - 超全局数组(变量),在PHP的脚本中,已经申明完成的变量,你可以直接就去使用即可!变量的名字已经规定好的了

> - 对于全部脚本而言, PHP提供了大量的预定义变量。这些变量将所有的 `外部变量(包括来自 PHP 之外的变量,如表单提交 )` 表示成内建环境变量,并且将错误信息表示成返回头。

预定义变量名      | 预定义变量值          | 说明

----------- | --------------- | --------------------------------------------------------------------------------------------------------------

`$GLOBALS`  | 引用全局作用域中可用的全部变量 | 一个包含了全部变量的全局组合数组,变量的名字就是数组的键

`$_SERVER`  | 服务器和执行环境信息      | 一个包含了诸如头信息(header)、路径(path)以及脚本位置等信息的数组

`$_GET`    | HTTP GET 变量    | 通过 `URL` 参数传递给当前脚本的变量的数组

`$_POST`    | HTTP POST 变量    | 当HTTP POST请求的 `Content-Type` 是 `application/x-www-form-urlencoded` 或 `multipart/form-data` 时,会将变量以关联数组形式传入当前脚本

`$_FILES`  | HTTP 文件上传变量    | 通过 `HTTP POST` 方式上传到当前脚本的项目的数组

`$_COOKIE`  | HTTP Cookies    | 通过 `HTTP Cookies` 方式传递给当前脚本的变量的数组

`$_SESSION` | Session 变量      | 当前脚本可用 `SESSION` 变量的数组

`$_REQUEST` | HTTP Request 变量 | 默认情况下包含了 `$_GET` `$_POST` 和 `$_COOKIE`的数组

`$_ENV`    | 环境变量            | 通过环境方式传递给当前脚本的变量数组

--------------------------------------------------------------------------------

### **PHP 中常见的预定义常量**

1. 在 PHP 中,除了可以自己定义常量,还预定义了一系列系统常量,可以在程序中直接使用来完成一些特殊功能;

2. 不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现:

- 或者动态加载后

- 或者在编译 PHP 时已经包括进去了

- 这些分布在不同扩展模块中的预定义常量有多种不同的开头,决定了各种不同的类型

const name                | const value        | const info

------------------------- | ------------------- | ---------------------

`__PHP_OS__`              | `UNIX` OR `WINNT`  | 执行PHP解析的操作系统名称

`__PHP_VERSION__`        | 5.2.6              | 当前 PHP 服务器的版本

`__TRUE__`                | TURE                | 代表布尔值, 真

`__FALSE__`              | FALSE              | 代表布尔值, 假

`__NULL__`                | NULL                | 代表空值

`__DIRECTORY_SEPARATOR__` | `\` OR `/`          | 根据操作系统决定目录的分隔符

`__PATH_SEPARATOR__`      | `;` OR `:`          | 根据操作系统决定环境变量的的目录列表分隔符

`__E_ERROR__`            | 1                  | 错误,导致 PHP 脚本运行终止

`__E_WARNING__`          | 2                  | 警告,不会导致 PHP 脚本运行终止

`__E_PARSE__`            | 4                  | 解析错误,有程序解析器报告

`__E_NOTICE__`            | 8                  | 非关键的错误,例如变量未初始化

`__M_PI__`                | 3.141 592 653 589 8 | 数学中的 π

--------------------------------------------------------------------------------

### **PHP 中的魔术常量**

1. php 中还有几个常量会根据它们使用的位置而改变,这样的常量在 php 中被称为 `魔术常量` ;

2. php `魔术常量` 不区分大小写

常量名            | 常量值      | 说明

--------------- | --------- | ---------------------

`__FILE__`      | 当前的文件名    | 在哪个文件中使用,就代表哪个文件名称

`__LINE__`      | 当前的行数    | 在代码的哪行使用,就代表哪行的行号

`__FUNCTION__`  | 当前的函数名    | 在哪个函数中时间,就代表哪个函数名

`__CLASS__`    | 当前的类名    | 在哪个类中使用,就代表哪个类的类名

`__METHOD__`    | 类下面的当前方法名 | 在类下面的哪个方法中使用,就代表这个方法名

`__DIR__`      | 当前目录名    | 在哪个文件下使用,就代表哪个文件名

`__TRAIT__`    | 不常用      | 不常用

`__NAMESPACE__` | 当前命名空间名  | 当前命名空间的名称

--------------------------------------------------------------------------------

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容