一 PHP语法
1.php标记
脚本标记
<script language="php">php代码</script>
标准标记(常用)
<?php php代码 ?>
2.注释
php注释分为两种,行注释和块注释
行注释:
//
块注释:
/*被注释的内容1
被注释的内容2
*/
3.php语句分隔符
php中,代码是以行为单位,系统需要判断行的结束,通过’;'来判断是否结束
4.变量
不能以数字开头(字母、下划线、数字组成)
$var1; //定义变量
$var2 = 3; //定义同时赋值
echo $var2; //输出var2的值
unset($var2); //删除变量,即将变量从内存中删除
预定义变量
$_GET
$_POST
$_REQUEST
$_GLOBALS
$_SERVER
$_SESSION
$_COOKIE
$_ENV
$_FILES
可变变量
$a = 'b';
$b = 'bb' //变量$b其实等于$$a
$b = $$a;
5.变量传值
值传递:将变量保存的值复制一份,然后将新的值传递给另外一个变量保存
$a = 1
$b = $a
引用传递:将变量保存的值所在的内存地址,传递给另外一个变量,两个变量指向同一块内存空间(两个变量是同一个值)
$a = 1
$b = &$a
内存分区:
栈区:程序可以操作的内存部分(不存数据,运行程序代码),速度快
代码段:存储程序的内存部分(不执行)
数据段:存储普通数据(全局区和静态区)
堆区:存储复杂数据,大但是低
6.常量
define('PI',3.14); //使用函数定义常量
const PII = 3 //使用const定义常量
constant(特殊常量) //特殊常量的访问
系统常量
PHP_VERSION //PHP版本号
PHP_INT_SIZE //整型大小
PHP_INT_MAX //整型能表示的最大值
魔术常量:已双下划线开头+常量名+双下划线魔术常量的值通常会随环境变化,但是用户无法去改变
__DIR__ //脚本所在的绝对路径
__FILE__ //脚本所在的绝对路径(包括文件名)
__LINE__ //当前所属的行数
__NAMESPACE__
__CLASS__
__METHOD__
7.数据类型
整型 Int/integer
浮点型 float/double
布尔型 bool/boolean
字符串型 string
对象类型 object
数组类型 array
资源类型 resource
空类型 NULL
类型转换
(float)$a
(string)$b //其他类似
类型判断
is_xxx(变量名)
bool类型不能用echo去查看,通常是用var_dump结构查看
var_dump($a,is_string($b),is_int($c))
gettype()获取变量的类型
settype()设定变量的类型 //与数据类型转换不同的点是,settype会对数据内容自动进行转换,而数据类型转换则不会对数据内容作出改变
整型进制定义
$a = 120 //十进制
$b = 0b120 //二进制
$c = 0120 //8进制
$d = 0x120 //十六进制
8.运算符
//赋值运算符
=
//算数运算符
+
-
*
/
% //取余
//比较运算符 (结果:满足返回true,不满足返回false)
<
<=
>
>=
== //大小相同
!=
=== //全等于,大小数据类型完全相同
!== //大小或者数据类型不同
示例:
var_dump($a == $b); //判断两变量是否相等,若相等则返回true,否则返回false
//逻辑运算符
&& //逻辑与
|| //逻辑或
! //逻辑非
//连接运算符
. //将两个字符串连接到一起
.= // 将左边与右边的内容连接起来,然后重新赋值给左边的变量,这种形式类似于其他语言的+=这种用法
//错误抑制符
@ //在可能出现错误的表达式前使用
//三目运算符
表达式1?表达式2:表达式3 //如果表式1为真,这执行表达式2,如果表达式1为假,则执行表达式3
//自操作运算符
++
--
//注:在php中,自操作运算符可以放在变量前后,在参与运算的情况下,这两种是有区别的
$a = 1;
$b = $a++; //$a = 2,$b = 1
$c = ++$a; //$a =2,$c = 2
//后置自操作,会把自己所保存的值保留下来,然后改变自己,自己给别人的值是原来的值
//前置自操作,先把自己改变,然后把改变的值给别人
运算符优先级,这个用的时候百度吧
9.if语句
if(条件表达式1){条件表达式1结果为true,执行的语句}
if( $day == 'sunday'){
echo 'fku';
}
if(条件表达式1){
表达式1结果为true执行的语句
}else{
表达式1结果为false执行的语句
}
10.switch分支
基本语法
switch(条件表达式1){
case 1:
需要执行的代码段1;
break; //匹配到此case后不再向下匹配,跳出switch语句
case 2:
需要执行的代码段2;
break; //
... //多个分支
}
11.循环语句
//for循环
for(条件表达式1;条件表达式2;条件表达式3){
满足条件执行的代码段
}
//while循环
while(条件表达式){
循环体
}
//do while循环(与while循环不同的一点是,do while循环至少会执行一次循环体)
do{
循环体
}while(条件表达式);
//条件控制语句
//continue
跳出本次循环,开始下一次循环
//break
终止循环,跳出循环体
html表单
<table></table> //表
<tr></tr> //行标签
<td></td> //列标签
php中书写方式,代替{}
for(){ -->此处大括号可以用:代替
} -->此处大括号可以用endfor;代替
12.常用函数
print() //打印简单变量的值(int/string)
print_r() //打印复杂类型变量的值(数组、对象等)
time()
date()
strtotime()
13.文件包含
include //碰到一次执行一次
include_once //同样的文件只会在第一次进行包含
require //同样是包含,和include一样,唯一的区别是报错时的级别不一样,include报错后级别为warning,不影响后续代码执行,require报错后,后续代码终止执行
14.函数
定义函数,为了实现功能的重复利用(如果函数在定义的过程中有参数,那么函数在调用的时候就必须要传入参数)
命名规范:由字母、数字、下划线组成,不能以数字开头
function 函数名(参数){
//函数体
//返回值:return
}
形参:函数定义时使用
实参:调用时使用的参数
引用传值,只能传递变量
返回值 return 返回当前函数的结果,函数不再执行。(即函数内return后面的内容不再执行)
全局变量:所属全局空间,只允许在全局空间中使用,理论上函数内部不可达
局部变量:函数内部定义变量,所属当前函数空间,只允许在当前函数自己内部使用
静态变量static $a=1 在定义时就直接赋值
静态变量在编译时会直接赋值,然后在调用函数时会自动跳过static这一行
错误触发
trriger_error() 类似python的except
乱码
header(‘Content-type:text/html;cahrset=utf-83’)