php变量与数据类型

PHP的执行周期:

Apache接到请求

如果是php文件的话,将调用相应的php文件进行处理

一:SAPI (Server Application programming Interface)(服务器应用程序接口)

指的是 Apache 与 php之间进行通许的接口。

我们可以想象成 apache的PHP模块 就是 apache给php提供的sapi。

 


 


 

二,编译型语言 和 解释型语言。

计算机 只能 明白 机器语言。任何编程语言 在 最终执行的时候都需要变成对应的机器语言代码。

在以上的过程中,按照对翻译结果的处理,是否生成可直接执行的目标文件,分成编译型语言和解释型语言。

例如c语言需要形成执行文件,就是编译型。

例如 php 语言,不能形成执行文件,每次都需要php的源代码,每次都需要翻译的过程,就是叫做解释型语言。

(提示:目前有很多php的优化产品,例如apc, zend optimize, 就是通过缓存 php的翻译结果 达到优化php执行速度的目的。)

Php是解释型语言,那么都有哪些解释过程:

首先 完成解释的过程是 利用php的解释器 完成的。

1, 读入源代码

2, 词法分析

3, 语法分析(对语法是否争取加以判断)

4, 生成opcode (opcode翻译过的 能够被引擎执行的代码)

5, 执行opcode, 利用Zend 引擎 来执行opcode,Zend引擎也是php程序带的,是php的核心解释器。

基础语法:

Php是用来管理和操作数据的。

变量,起到,在PHP脚本内,保存数据的功能的

在脚本执行过程中,其值 可以发生变化的量, 变量。


 

变量如何定义:

语法:

$变量名 。

为变量设置值: $变量名 = 变量值。

获得变量的值: $变量名。

其中 变量名 不包含 $. $只是一个语法。

 


 

通常变量的值 可以是任何数据(什么类型的数据都可以)。而变量的名称,有一定的要求。

变量名称 大小写敏感(区分大小写)

变量名称只能字符(英文字母, 中文字符),数字,下划线组成。不能以数字开头。

 

由于 通常在一个脚本内 会出现多个变量,因此 要求大家在 为变量名命名时 ,应该有特定的一套规则才可以。

见名知意,通常可以用英文单词。

如果变量名内单词过多,可以采用 下划线法 或者 驼峰法 来分隔单词。


 

预定义变量:

通常情况下 变量都是用户自己定义的。但是 在此基础上,php系统 为我们定义了一些,包含当前的系统环境,和一些快捷操作的变量。

称之为预定义变量:

一共有 9 个,都是数组类型,都是全局变量。因此这几个预定义变量,也被称作,九大超全局数组变量。

$GLOBALS 保存全局变量

$_SERVER 保存服务器信息

$_GET 保存get数据

$_POST 保存post数据

$_FILES 保存提交的文件

$_COOKIE 保存得到的cookie

$_SESSION 保存session数据

$_REQUEST 保存请求数据

$_ENV 保存环境

其中不同的变量承担不同的任务,例如

$_SERVER,保存的服务器的信息。


 

可变变量:

变量名是可以变化的,某个变量的变量名可以是其他变量的值。


 

例如 利用可变变量 输出昵称:


 

 

变量的引用传递

变量之间的赋值分作 值传递 和 引用传递 两种方式。

值传递:


 

 

引用传递:

 


 

引用传递 通过&操作符来实现。

 

Unset()函数,销毁变量,释放变量。指的是销毁了变量名与变量值之间的这个引用。让变量名找不到对应的值销毁:

一道题:


 

参数的引用传递和返回值的引用传递(在函数中介绍)

常量:

指的是 一旦定义就不能被改变的数据就是常量。

常量的定义方式:需要利用函数去定义。

Define(常量名,常量值);

其中 常量名,规则没有限制。而且通常是区分大小写,但是可以通过配置更改成不区分。通常情况下,常量名都是大写并且使用下划线分隔。


 

常量不能通过赋值语句,为其设置值 只能通过define,而且常量一旦被定义 在整个脚本内不能修改同时不能销毁。常量一旦定义,在定义后的脚本的任何地方

都可以使用(没有作用域的限制)

使用常量, 直接使用常量名即可:


 

常量的大小写问题:

我们可以通过 define()的第三个参数规定常量的大小写是否敏感,默认为false,表示敏感


 

就可以这么调用:


 

关于常量名问题:

原则上没有任何限制,但操作上,不建议使用除了字母数字下划线之外的字符。


 

但是不能直接使用:

但是 常量是没有问题的

 


 

这样的常量,需要使用函数 constant(‘常量名’)函数

 

判断常量是否定义:

Defined(‘需要判断的常量名’)

;

我们可以通过 函数 get_defined_contants()函数 获得所有定义的常量:

 


 

通过解果 我们发现 除了我们定义的常量之外,还有很多:

预定义常量:

魔术常量: 看上去是常量的用法。外观特点,都是__开头。

 

常量可以保存数据 变量也可以保存数据, 为什么还要有常量?

常量不可以更改,将一些固定的数据 如目录地址,或者 数学常量(π)。

变量和常量的区别:

变量需要$声明,常量不需要。

变量可以随时更改,常量不可以。

变量名区分大小写,常量名(默认区分也可以不区分)

变量的值可以是任何的数据类型,但是通常常量的值只能是标量数据类型

数据类型:

根据数据所表示的内容不同,程序语言在处理时,采用不同的方式。这样导致数据的类型不同。就是数据类型。

在我们的php中 分为 八种数据类型:

整型,浮点型,字符串型,布尔型,数组型,对象型,资源型,NULL

又将八种数据类型 分成了三大类:

标量数据类型(基本数据类型),一个数据表示一个值。

整型,浮点型,字符串型,布尔型

整型:int integer 值应该是整数。

定义时,直接将值写出来即可,不用加任何特殊符号。

在程序语言进行处理的过程中,整型通常 不仅仅是 十进制。

Php还支持 八进制的整数 与 十六进制的整数。#ffffff;

八进制:零开头后边跟八进制数值。

十六进制: 0x开头后边跟十六进制数值。


 

进制之间的关系:

八进制,逢八进一。

十六进制: 逢十六进一。

进制之间的转化:

二进制:0110101

十进制与其他进制之间的转换:辗转求余


 


 


 


 


 


 

 

其他进制 转 成十进制。


 

以上的转换关系,我们如果在程序中用到了,我们可以是使用php的进制转换函数完成!

 

 

整数占4个字节的存储空间!

 

4个字节 4x8位 01111111 11111111 11111111 11111111

通常使用一个常量 PHP_INT_MAX表示。

 


 

一旦计算超出了整型范围,通常使用浮点型表示。

浮点型:float, 双精度。表示小数,范围较大

直接写小数的形式表示浮点数,也可以使用科学计数法表示浮点数。

 


 

理论最大值:

1.8E+308

 

布尔型 Boolean:

就两个值 true表示真 false 表示假,不区分大小写。

字符串 string: phpz中没有字符类型,所以的字符都用字符串去表示。


 

定义字符串,php中存在4种方式定义字符串数据类型。

单引号,单引号定义的字符串会原封不动地定义,如果大家定义的字符串没有任何需要解析的内容,请使用单引号。

定义字符串的单引号 不算作字符串的内容。

如果字符串内容中存在单引号,需要使用转义字符加以定义


 

如果内容中存在转义的斜杠\怎么办?直接使用就可以。但是不能出现在’和结尾处。


 

双引号,双引号定义的字符串会先尝试解析字符串的内容,最后将解析结果定义


 

双引号不单单能够解析变量,很多转义字符都可以解析,

但是 需要在解析变量的时候注意:


 

通常在双引号中,配合大括号,来告知php解析器,哪个部分是需要被单独解析的。

 

例如拼凑sql语句:

 


 

定界符方式:通常 在我们需要定义长字符串,或者多行字符串 或者 字符串内需要复杂的转义时,可以使用 定界符的方式定义字符串。

Heredoc

<<<标记

字符串内容

字符串内容

标记;


 

Nowdoc

<<<’标记’

字符串内容

标记;

与 heredoc的区别在于,heredoc可以解析变量,而nowdoc不可以解析变量。

注意,无论是使用heredoc或者nowdoc,开始和结束标记需要相同,但是可以任意。尤其注意结束的标记,需要定格写,而且在结束符行内只能有结束符自己和语句结束符;.


 

复合数据类型(集合数据类型)一个数据 表示多个值

数组型,对象型

数组类型,一组数据的集合,php中 是键值对的关系实现的。

定义一个数组,使用 array() 语法 或者使用 []语法都可以。


 

其中,key就是键 而value就是值,=> 表示键值对应关系

 


 

每一键值对,称之为一个元素,键称之为元素的下标,而值称之为元素的值。

其中 元素的下标应该为 整型或者字符串类型,如果大家使用其他的数据类型作为下标,php会自动地转换成相应的整型或者字符串型。

元素的值应该为 任何数据类型。包括数组本身。

对象型:对象被称之为有生命力的数组

对象数据类型 不单单有类似与数组一样的保存集合数据的能力,也可以有处理数据的能力。

特殊数据类型

资源型,

通常情况下,资源型数据不是用户手动创建的,而是我们在使用php的函数时,如果需要操作某些额外的资源,通常,这些资源都是使用资源类型管理的。

例如 我们需要使用对mysql数据的连接。

 

NULL

什么都没有,什么都不是。空。

NULL 是数据类型, 同时 null类型 只有一个值 也是null。

通常 一个变量不存在,如果去使用他,则为空。一个变量被unset掉了,则为空。
 


 

作业:

查找5个$_SERVER内的值,记住分别都是什么含义

 


 

将php提供的进制转换函数都列举出来,总结规律!。

类似 hexdec() dechex()

大家试着在定义数组时,使用非整型或者是字符串类型的数据。


你可能感兴趣的:(编程语言,源代码,计算机,应用程序,执行文件)