PHP学习——语法基础(二)
一、PHP代码标记
我们用于区分PHP脚本的标志
ASP 标记:<% php代码%>
基本不用,要用需要配置
短标记: <? php 代码 ? >
基本不用,要用需要配置
脚本标记: < script language="php">php代码< /script>
标准标记(常用): < ?php php代码?>
二、PHP注释
单行注释: //
或者#
多行注释: /**/
块注释:
1 |
|
三、PHP语句的分隔符
省流: ;
,想着是和C语言差不多的分隔规则就OK
建议:还是不写?>
作为结束标识符
比如说
1 |
|
四、变量
变量定义
PHP中的变量不需要任何关键字定义变量(赋值)
所有的变量都需要在前面加上一个$
输出变量:
1 |
|
刪除变量:
1 |
|
变量命名规则
- 必须以
$
开头 - 名字由字母、数字、下划线’_’开头,但是不可以以数字开头(允许中文变量)
预定义变量
概念: 提前定义的变量,系统定义的变量,存储许多需要用到的数据。(预定义变量都是数组)
- $_GET: 获取所有的表单以 get 方式提交的数据
- $_POST: POST 提交的数据都保存在这里
- $_REQUEST: GET和POST提交的数据都会保存
- $GLOBALS: PHP中所有的全局变量
- $_SERVER: 服务器信息
- $_SESSION: session 会话数据
- $_COOKIE: cookie 会话信息
- $_ENV: 环境信息
- $_FILES: 用户上传的文件信息
可变变量
概念: 当一个变量的值和另一个变量的名字相同的时候,我们可以通过在第一个变量前多加一个$的方式访问第二变量的值。
1 |
|
浅层原理: 首先$a=b,然后就相当于$$a=$b='a'
变量传值
有 值传递和引用传递 两种方式
1 |
|
引用传递:
内存分区
- 栈区: 程序可以操作的内存部分**(不存数据,运行程序代码)**,少但是快
- 代码段: 存储程序的内存部分(不执行)
- 数据段: 存储普通数据(全局区和静态区)
- 堆区: 存储复杂的数据,大但是效率高
执行流程
五、常量
定义方式:
- 使用定义变量的函数:
define('常量名',常量值)
- PHP5.3之后关键字定义:
const PII = 3
规则:
- 不用
$
- 名字规则基本一样,但是特殊字符相比之下可以使用的更多一些
- 一般以大写字母开头
1 |
|
系统常量
概念: 系统帮助用户定义的常量,用户可以直接使用。
常用:
- PHP_VERSION:PHP版本号
- PHP_INT_SIZE:整型大小
- PHP_INT_MAX:整型能表示的最大值(PHP中整型是允许出现负数:带符号)
系统魔术常量:
在PHP中还有一些特殊的常量,他们有双下划线开始+长两名+双下划线结束。魔术常量的值通常会跟着环境变化,但是用户改变不了
__DIR__
当前被执行的脚本所在的电脑的绝对路径;__FILE__
当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字);__LINE__
当前所属的行数__NAMESPACE__
当前所属的命名空间__CLASS__
当前所属的类__METHOD__
当前所属的方法
六、数据类型
PHP 指的是存储的数据本身的类型,而不是变量的类型。PHP 是一种弱类型语言,变量本生没有数据类型。
分类
基本数据类型
- 整型:int\integer,系统分配 4个字节存储,表示整数类型
- 浮点型:float/double,系统分配8个字节,表示小数或者整型存不下的整数
- 字符串型:string,系统根据实际长度分配,表示字符串(引号)
- 布尔类型:bool/boolean,表示布尔类型,只有两个值:true 和 false
复合数据类型
- 对象类型:object,存放对象(面向对象)
- 数组类型:array,存储多个数据(一次性)
特殊数据类型
- 资源类型:resource,存饭资源数据(PHP 外部数据,如数据库、文件)
- 空类型:NULL,只有一个值为 NULL**(不能运算)**
类型转换
注意
- 以字母开头的字符串永远为0
- 以数字开头的字符串,取到碰到字符串类型位置(不可以同时包含两个小数点)
类型判断
概念:通过一组类型判断函数,来判断变量,最终返回这个变量保存数据的数据类型:是一组以 is_开头后面跟类型名字的函数:is_XXX(变量名)
注意: Bool
类型不能使用echo
来查看,可以使用var_dump
结构查看
1 |
|
类型获取和设定
例子:
1 |
|
七、PHP中的进制
进制转换
- 10进制转换为16进制: Dechex()
- 10进制转换为8进制:Decoct()
- 10进制转换为2进制Decbin()
- 2进制转换为10进制: Bindec()
- ……
八、浮点数
1 |
|
**Empty():**判断数据的值是否为“空”,不是NULL,如果为空返回true,不为空返回false .
**Isset():**判断数据存储的变量本身是否存在,存在变量返回true,不存在返回false.
九、运算符
连接运算符
1 |
|
错误抑制符
有些错误可以预先知道的,但是这些错误不可避免的情况下使用。
1 |
|
位运算符
…….