引言
本文系作者学习PHP时的部分笔记,内容主要来源于《PHP+MySQL网站开发从零开始学》一书。此书介绍PHP7与MySQL5.6的相关内容,其中PHP部分含金量较高,MySQL则主要介绍DDL(数据定义语音),笔者认为难度略大,最好先从DML开始学习。以下是PHP基本语法、PHP与用户交互、正则表达式的笔记,语言尽量简洁,方便将来查阅。
PHP基本语法
引用
与c++相同
PHP变量的类型由上下文决定
可变变量:
一个变量的变量名可以动态设置和使用
例:
<?php
$a = "hello";
$$a = "world";
echo $a; //输出hello
echo $$a; //输出world
echo $hello; //输出world
?>
常量声明
A.define(‘常量名’,常量值)
B.const 常量名=常量值
defined(常量名)
检测常量是否存在,若存在则返回true
内置常量
__FILE__程序文件名(包括目录)
__DIR__程序目录
__LINE__当前PHP程序的行数
TRUE,FALSE布尔值
PHP-VERSION php版本号
PHP-OS 操作系统名称
Echo false不输出内容
进制
八进制:数字前加0
十六进制:数字前加0x
十进制: 直接写数字
Gettype(变量名)
获取变量类型
Intval(变量名或算式)
强制类型转换为int型
相当于(int)变量名或算式
字符串
双引号定义的字符串中的变量会被解析
双引号中的特殊字符会被转义解析,如 \n \r \e \t……
\x[0-9A-Fa-f]{1,2} 以十六进制方式表达的字符
\[0-7]{1,3} 以八进制方式表达的字符
heredoc和nowdoc
Heredoc:对变量解析,对特殊字符转义
<<<EOT
大段字符
EOT;
Nowdoc:不对变量解析,不对特殊字符转义
<<<’EOT’
大段字符
EOT;
注:EOT为标识符,符合变量命名规则
一个数值可以通过strval(数值)转换为字符串
与(string)数字 效果相同
资源
资源保存了对外部资源的引用,通过专门函数来建立和使用
例:$handle = fopen(“C:\\folder……”,”r”)
NULL
A.被赋值为null
B.未被赋值
C.被unset()
类型转换
A.自动转换
(类型)值
例:(int) 1.1
B.强制转换
例:settype(变量名,’int’)
算数运算符
与C++基本相同
.= 将左边的字符串连接右边字符串,然后赋给左边字符串
<>或!=不等号
==类型转换后相等
===类型和值都相等
!=类型转换后不等
!==数值或类型不等
注意:慎用==和!=,因为会自动转换,引发意想不到的麻烦
逻辑运算符
||比OR优先级高
&&比AND优先级高
XOR逻辑异或
错误控制运算符@
@加在表达式前,屏蔽错误信息
NULL合并运算符??
变量存在且值不为NULL则返回值,否则返回第二个操作符
相当于: isset(变量) ?第一个操作符: 第二个操作符
太空船操作符<=>
$a < $b 返回-1
$a = $b 返回0
$a > $b 返回1
函数
Function 函数名(传入参数){
……
Return 返回值;
}
其余与C++相同
PHP不支持函数重载
通过引用&传递参数
与C++相同
函数参数默认值
与C++相同,有默认值的参数必须放在最后
函数参数可以指定类型
Class 、interface 对象或接口
Array 数组
Callable 回调函数
Bool 、int、string、float标量类型
调用函数时参数不会强制类型转换,不符合则返回异常
用…设置传入任意多个参数
例:
Function myfunction(…$vars){
}
myfunction( …[I,2,3]);
myfunction(1,'test',1.0,false);
myfunction(…array(1,2,3));
也可以指定可变数量参数的类型,或用引用&传递参数
例:
Function myfunction(int …$vars){
}
myfunction(1,2,3,4);
Function myfunction(int …$vars){
}
静态变量
Static变量的值可以一直保持
通过数组可以返回多个值
通常借助list函数
例:
Function myfunction(){
….
Return [$a,$b];
}
List($a,$b)=myfunction();
返回值类型声明
例:
Function myfunction(): int {
…
}
可变函数
将函数名赋值给变量
使用时在变量名后加(参数)
例:
$a = myfunction(){}
$a();
典型用法:将函数名放入数组中,用foreach依次执行
匿名函数(闭包函数)
临时创建一个没有名称的函数
例:
$myfunction = function($message){
echo "myfunction:".$message;
}
$myfunction('hello') //输出myfunction:hello