PHP基础语法
最基础语法
- PHP代码标记:标准记法 <? php 代码 ?>
- PHP语句分隔符:代码以行为单位,用常用;表示结束。注:?>有自带语句结束符的效果,最后一行PHP代码可以没有语句结束符。
1.变量
-
变量的定义:
- 变量名前需加 符 号 , 使 用 时 也 要 带 有 符号,使用时也要带有 符号,使用时也要带有符号
- 变量名可由数字、字母、下划线命名,但不能以数字开头
- 允许中文变量名,但不建议这么做
-
预定义变量
即提前定义的变量,由系统定义的变量,存储许多要用到的数据(预定义变量都是数组)。
-
可变变量
$a = 'b'; // a变量的内容正好是b变量的名称,故称a为可变变量 $b = 'bb'; echo $$a;
-
变量传值
- 值传递:将a变量的值复制给b变量
- 引用传递:将a保存值的地址复制给b变量,使两变量指向同一块内存
2. 常量
const/constant:是在程序运行中,不可改变的量(数据)。
-
定义
- define(‘常量名,常量值’)
- const 常量名=常量值;
- 定义特殊常量 define(’_’,‘smile’) 访问constant(’-’);
-
命名规则
- 不可使用$
- 变量名可由数字、字母、下划线命名,但不能以数字开头
- 通常以大写字母为主
- 可使用一些特殊字符
- 可选择是否区分大小写
-
系统常量
魔术常量:由双下划线+常量名+双下划线组成,其值会随着环境变化而变化,用户无法改变。
3. 数据类型
在PHP中指的是数据本身的类型,而不是变量的类型。PHP是一种弱类型语言,变量本身没有数据类型。
-
八大数据类型
-
基本数据类型
- 整型,int,四个字节
- 浮点数,float/double,八个字节,储存小数或整型存不下的整数
- 字符串型,string
- 布尔类型 ture false
-
复合数据类型
5. 对象类型,object,存放对象
6. 数组类型,array,存放多个数据 -
特殊数据类型
7. 资源类型,resource,存放资源数据(PHP外部数据,如数据库,文件)
8. 空类型,NULL,只有一个值就是NULL(不能运算)
-
-
类型转换
-
自动转换:系统根据需求自行转换(用得较多,效率较低)
-
强制转换(手动转换)
注:1、以字母开头的字符串,永远为0;
2、以数字开头的字符串,取到碰到字符串为止。(不会同时包含两个小数点)
-
4. 运算符
- 算术运算符 + - * / %
- 比较运算符 > < = >= <= ==(数据大小相同) != =(大小及数据类型均相同) !
- 逻辑运算符 && || !
- 连接运算符 .(将字符串连接在一起) .=(将右边内容加给左边内容)
- 错误抑制符 @(可能出错的表达式),在PHP中有一些错误可以提前预知,但又不想报错,这就需要错误抑制符
- 三目运算符 表达式1 ? 表达式2:表达式3
- 自操作运算符 ++ –
- 位运算 & | ~(按位取反) ^(按位异或) >>(按位右移) <<(按位左移)
5. 流程控制
-
if分支
if(判断条件)
{ 代码块 }
else
{ 代码块 }
-
switch分支
switch(条件表达式)
{
case 值1:
代码;
break;
case 值1:
代码;
break;
default:
代码;
break;
} -
for循环
for($i = 0;i<10;i++)
{
echo $i;
} -
while循环
while($i <= 10)
{
echo $i++ ;
} -
do-while循环
do
{
$i++;
echo $i;
}while($i<=10)
6. 文件
文件包含:在一个PHP脚本中,将另外一个文件包含进来,合作完成一件事情。
-
文件包含四种形式
- include
- include_once(系统自动判断,该文件是否已被包含过)
- require
- require_once(系统自动判断,该文件是否已被包含过)
-
php代码执行流程
-
读取代码文件(相当于PHP程序);
-
编译:将PHP代码转化成字节码(二进制),生成opcode(php可解析的代码);
-
针对引擎来解析opcode,按照细节码进行逻辑运算;
-
转化成对应的html代码。
-
-
include 与require区别
require和include区别在于:若未包含文件,则报错形式不一样。(require包含错误文件,则include后不再执行;include未包含文件,会警告,但是仍会执行后面的。)
-
文件加载路径
- 绝对路径(从磁盘根目录开始—本地绝对路径;从网站根目录开始—网络绝对路径)
- 相对路径:从当前文件所在目录开始的路径.或者./表示当前文件夹…/上级目录
7. 函数
将实现某一功能的代码块封装到一个结构中,从而实现代码的复用。
-
函数定义
Function 函数名(参数){
函数体
return 返回值
} -
函数调用
diaplay(参数);
-
函数参数
- 实参个数可多于形参,不会报错
- 默认值定义时,应放在后边,不能左边有默认值,而右边没有
- 若参数为引用传递,则会影响函数外该参数的值
-
作用域
作用域:通常是指变量可以被访问的区域。
-
全局变量:所属全局空间,在PHP中只允许在全局空间使用,函数内部不可用。
-
局部变量:函数内部的变量
-
超全局变量:预定义变量(系统定义的),没有访问限制。
-
想在函数内部访问全局变量,可通过$GLOBALS
-
global关键字
-
若使用global定义的关键字在外部存在,那么系统在函数内部定义的变量直接指向外部变量所指向的内存空间(同一个变量)。
-
若其定义的变量在外部不存在,系统会自动在全局空间定义一个与局部变量同名的全局变量。
-
-
-
静态变量
静态变量:static是在函数内部定义的变量,使用static关键字修饰,用来实现夸函数共享数据的变量(注:跨函数是指同个函数多次调用)。
-
可变函数
可变函数:当前有一个变量所保存的值,刚好是一个函数的名字,那么就可以使用$变量()来充当函数名 使用。
-
匿名函数
$func = function()
{
echo ‘hello world’;
}; // 因为相当于变量的赋值,所以需加一个分号// 调用匿名函数
$func(); -
常用系统函数
-
print()类似于echo的
-
时间函数 echo data(‘Y 年 m 月 d 日’);
echo time();
echo microtime(); -
数学函数
max()、rand():指定范围里的随机整数、
round():四舍五入
ceil():向上取整
floor()向下取整
pow(2,8):2的8次方
abs():绝对值
sqrt():求平方根
-
8. 数组
-
定义数组
- $arr1 = array(‘1’,2,‘hello’);
- $arr2 = [‘1’,2,‘hello’];
- $arr3[] = 1; // 默认给数组第0个元素赋值
$arr3[10] = 100; // 第10个元素赋值
$arr3[] = ‘1’; // 第11个。默认下标是从当前最大下标
-
数组特点
- 可以整数下标或者字符串下标
若数组下标均为整数,则称为索引数组
若数组下标均为字符串,则称为关联数组。
混合下标的话称为混合数组
-
数组元素的顺序以放入顺序为准,与下标无关
-
数字下标的增长特性:从0开始自动增长,若中间手动加入较大的下标,则后面则会从当前最大下标+1增长。
-
PHP数组中类型元素没有限制。
-
PHP中数组元素没有长度限制。