PHP标记与注释
PHP标记
- 标准php标记风格(建议使用)
格式:<?php echo "hello world"; ?>
- 简短标记风格
格式:<? echo "hello world"; ?>
注意:必须在php.ini文件中将short_open_tag选项设置为on。 - Script脚本标记风格
格式:<script language="php"> echo "hello world"; <script>
- 仿ASP标记风格
格式:<% echo "hello world"; %>
变量前要带$
PHP注释
1.//
:C++语言风格的单行注释
2./* */
:C语言风格的多行注释
3.#
:UNIX的Shell语言风格的单行注释
PHP的数据类型
数据类型
1.标量数据类型
整型integer
:包括正整数、负整数和0。
- 整型数据可以用十进制、八进制和十六进制表示。
- 八进制整数前面必须加0,如01
- 十六进制数前面必须加0x,如0x2
浮点型float/double
:可以存储整数和小数。
格式:
- 标准格式:如5.1286、0.88、-18.9
- 科学计数法格式:如8.13E2、32.64E-2
布尔型boolean
:也称逻辑型数据
取值范围:真值(true)和假值(false)
字符串型string
:是连续的字符序列,由数字、字母和符号组成。
- 字符串的每个字符只占用1B。
- 字符串连接用.
格式:
- 单引号:包含的变量名称或者其他的文本都会不经修改地按普通字符串输出。
- 双引号:包含的变量会自动被替换成实际变量值。
例如:
<? php
$a="你好,";
$b="世界!";
echo $a.$b."<br/ >";//输出的是:你好,世界!
echo "$a"."$b"."<br/ >";//输出的是:你好,世界!
echo "$a$b<br/ >";//输出的是:你好,世界!
evho '$a'.'$b'.'<br/ >';//输出的是:$a$b
echo "一个范例:{$a},印出'早安'";//输出的是:一个范例:你好,,印出'早安'
?>
转义字符:
\"
:双引号
\\
:反斜线
\n
:换行
\r
:回车
\t
:制表符 (TAB)
\$
:美元符号 ($)
\
x两位数字:表示十六进位字符
- 实际上只是在源代码中起作用,但对浏览器显示无效,即对网页的显示而言无意义。
2.复合数据类型
数组
- 可以是一维、二维、或者更多维数组
- 元素可以是字符串、整型、浮点型、布尔型、数组或对象
格式:
- 逐一给数组元素赋值:
$arr[key]="value";
- key:数组元素的索引,可以是整数,也可以是字符串。
- value:数组元素的值,可以是任何数据类型,但在同一数组各元素的数据类型必须相同。
- 用array()函数创建数组,如下
<?php
$arr=array
(
0=>6,
2=>6.66e2,
1=>"我爱PHP",
"str"=>"string ",
);
?>
对象
3.特殊数据类型
资源resource
:用于表示一个php外部的资源,由特定的函数来建立和使用。
- 任何资源在不需要使用时应及时释放。
空值null、NULL
:表示没有为该变量设置任何值。
三种情况:
- 尚未赋值
- 被赋值为null
- 被unset()函数销毁的变量
数据类型检测函数
返回类型:bool
- 但是输出的结果是1或无内容即空值
gettype()
获取类型
settype()
转换类型
is_array()
is_bool()
is_float()
is_integer()
is_null()
is_numeric()
is_object()
is_resource()
is_scalar()
is_string()
数据类型转换
自动类型转换
:在PHP预处理根据运算需要、自动将变量转换成合适的数据类型再进行运算。
强制类型转换
:程序员通过编辑手段强制将其变量或敞常量的数据类型转换成指定的数据类型。
三种方法
- 在变量前面加上小括号,然后把目标数据类型写在小括号中
- 使用通用类型转换函数
settype()
函数格式:bool settype(变量名,“数据类型”);
- 返回值bool,即函数执行成功则返回true,否则返回false。
- 使用通用类型转换
inval()
、strval()
、floatval()
函数名 | 功能说明 | 示例 |
---|---|---|
intval() | 强制转换成整型 | $a=intval($b); |
floatval() | 强制转换成浮点型 | $a=floatval($b); |
strval() | 强制转换成字符串型 | $a=strval($b); |
转换注意事项
- 转换为布尔型:
null -> false
0 -> false
0.0 -> false
“0” -> false
未赋值的变量或数组 -> false - 转换为整型
false -> 0
true -> 1
浮点数 -> 小数部分被舍去
以数字来开头的字符串 -> 截取到非数字位
其他字符串 -> 0 - 字符串转换为数值型
以数字来开头的字符串 -> 数字部分转换为整型,舍去后面字符串;含小数点则取到小数点前一位
PHP常量
:在程序运行过程中始终保持不变的数据。
- 常量的值被定义后,在程序的整个执行期间,这个值都有效,不需要也不可以再次对该常量进行赋值。
预定义常量
:用于获取PHP中相关系统参数信息。
常见PHP预定义常量如下表:
常量名称 | 功能 |
---|---|
__FILE__ | 返回当前文件所在的完整路径和文件名 |
__LIVE__ | 返回代码当前所在行数 |
PHP_VERSION | 返回当前PHP程序的版本 |
PHP_OS | 返回PHP解释器所在操作系统名称 |
TURE | 真值true |
FALSE | 假值false |
NULL | 空值null |
E_ERROR | 指到最近的错误处 |
E_WARMING | 指到最近的警告处 |
E_PARSE | 指到语法有潜在问题处 |
E_NOTICR | 提示发生不寻常,但一定是错误处(例如使用一个不存在变量) |
常量的声明和使用
- 定义常量 define()
格式:define("
常量名称", "
常量值",
大小写是否敏感);
「大小写是否敏感」:true
表示不敏感,false
表示大小写敏感(默认)。 - 常量判断 defined()
格式:bool defined(
常量名称);
如果成功则返回 true,失败则返回 false。
PHP变量
变量 的声明
格式:$
变量名=
变量值
- 命名 以美元符号
$
开始; - 区分大小写;
- 只能以字母或下划线开头
- 由字母、数字、下划线及从 127-255 的其他 ASCII字符组成
- PHP变量属于松散数据类型,变量不需要预先定义,在使用时动态识别类型
变量 的赋值
- 直接赋值
$a=1;
$b=2;
- 传值赋值
$a=1;
$b=$a;
- 引用赋值:赋值时在等号右边变量前加 “
&
” 符号
$a=1;
$b=&$a; // $b 和 $a 都等于 1
$b=3; // $b 和 $a 都等于 3
-
可变变量(特殊的变量)
格式:$$
可变变量名称=
可变变量的值$a=“php”;
$ a = " b b b " ; / / a="bbb";// a="bbb";//a作为可变变量,目前名称为php
// $php的值是bbb
变量 的作用域
(1) 局部变量:在函数中声明的变量,只能在该函数内引用
(2) 函数参数:作为形式参数
(3) 全局变量:在变量前加 global
,定义在全部函数外部,作用域为整个 PHP 文件,可以在程序的任何地方访问。
(4) 静态变量:在变量前加 static
,在函数退出时不会丢失值。
(5) 超级全局变量:用于提供大量与环境有关的信息,获取当前用户会话,用户操作环境和本地操作环境等详细信息。
$_SERVER[' ']
:服务器和客户信息
$_GET[' ']
:获取 GET 传递的信息
$_POST[' ']
:获取 POST 传递的信息
$_COOKIE[' ']
:COOKIE 信息
$_FILES[' ']
:上传文件信息
$_ENV[' ']
:操作系统环境信息
$_SESSION[' ']
:会话信息
PHP运算符
运算符名称 | 运算符 |
---|---|
算术运算符 | + , - , * , / , % , ++ , -- |
字符串运算符 | . |
赋值运算符 | = , += , -= , *= , /= , %= , .= |
位运算符 | & , | , ^ , << , >> , ~ |
逻辑运算符 | && ,AND ,|| ,OR ,xor , ! ,NOT |
比较运算符 | < , > , <= , >= , == , === , != ,!== |
其他运算符 | $ , & , @ , -> , => , ?: |
.
:拼接操作符.=
: 拼接赋值操作符
PHP函数
PHP函数分为系统内置函数和用户自定义函数。
1. 自定义函数
函数的定义
格式:
function 函数名称(参数1,参数2….)
{
// 代码块
return 返回值;
}
函数的调用
格式:
函数名(
参数);
变量 =
函数名(
参数);
参数
概念
在调用函数时需要向函数传递参数,被传入的参数称为实际参数;
函数定义的参数称为形式参数;
函数间的传递参数
1) 按值传递
:将实参的值复制到对应的形参中,在函数内部的操作针对形参进行,操作的结果不会影响到实参,即函数返回后,实参的值不会改变。
2) 按引用传递(传地址)
:将实参的内存地址传递到对应的形参中,在函数内部的所有操作都会影响到实参,即函数返回后,实参的值会改变。
格式:&
实参
3) 默认参数
:定义形参时,可以指定某个参数为可选参数,将可选参数放在参数列表末尾,并指定默认值。
格式:function
函数名称(
参数1,
参数2…,
参数n=
值)
- 可以有多个可选参数
- 可选参数只能放在末尾位置
- 可选参数必须指定默认值
函数返回值
:使用 return 语句返回值;
变量作用域
:即变量的作用范围。
变量
PHP中的变量按作用域的不同将分为三种
1) 局部变量
:在函数中声明的变量,只能在该函数内引用
2) 函数参数
:作为形式参数
3) 全局变量
:定义在全部函数外部,作用域为整个 PHP 文件,可以在程序的任何地方访问。
格式:global
变量
4) 静态变量
:在函数退出时不会丢失值。
格式:static
变量
5) 超级全局变量
:用于提供大量与环境有关的信息,获取当前用户会话,用户操作环境和本地操作环境等详细信息。
$_SERVER[' ']
服务器和客户信息
$_GET[' ']
获取 GET 传递的信息
$_POST[' ']
获取 POST 传递的信息
$_COOKIE[' ']
COOKIE 信息
$_FILES[' ']
上传文件信息
$_ENV[' ']
操作系统环境信息
$_SESSION[' ']
会话信息
2. 系统内置函数
(1)标准函数库
:存放在PHP内核中,可以在程序中直接使用。
1)变量函数库
类型 | 说明 | 语法 |
---|---|---|
empty | 检查变量是否为空 (null),为空返回 TRUE,否则为 FALSE | empty( 变量) |
gettype | 获取变量的类型 | gettype( 变量) |
is_array | 检查变量是否为数组类型 | is_array( 变量) |
isset | 检查变量是否被设置或赋值 | isset( 变量) |
unset | 释放给定变量,即销毁变量 | unset( 变量) |
var_dump | 打印变量的相关信息 | var_dump( 变量) |
2)字符串函数库
函数 | 说明 | 语法 | 返回值 |
---|---|---|---|
explode | 分割字符串,将字符串换成数组 | explode( string separator拆分标识, string 原字符串[, int limit]) | [] 拆分后得到数组类型 |
strlen | 计算字符串长度 | strlen( string 字符串) | int 字节数 |
substr | 截取字符串,采用起点-长度方式 | substr( string 原字符串, int 起始位置[, int 长度]) | string 截取到得字符串 |
trstr | 截取字符串,采用子串-结尾方式 | strstr( string 原串, string 标识) | string 截取到的字符串 |
trim | 去掉左右空格 | ||
md5 | 计算字符串的MD5哈希(加密) | md5( string 原串, bool raw_output) | |
echo | 输出字符串 | echo( string arg1[, string argn]) 或者echo string[, string, …] | void |
输出字符串 | print( string arg1[, string argn]) 或者print string[, string, …] | int | |
print_r | 输出字符串,主要用于打印数组 | print_r() | void |
3)时间日期函数库
函数 | 说明 | 语法 | 返回值 |
---|---|---|---|
checkdate() | 验证日期的有效性 | checkdate( int month, int day, int year) | bool 是否有效 |
data() | 格式化一个本地时间 | date( string format[, int timestamp]) | string 本地时间的字符串 |
time() | 返回当前时间戳 | time() |
F
替换成月份的英文全称.
y
替换成 2 位的年号.
Y
4 位年号
M
替换成月份的英文简称.
m
替换成月份数.
d
替换成日数.
H
替换成小时数(24 小时制)
h
替换成小时数(12 小时制)
4)PHP数学函数库
函数 | 说明 |
---|---|
rand() | 产生一个随机数 |
abs() | 返回绝对值 |
max() | 比较最大值 |
min() | 比较最小值 |
ceil() | 进一法取整 |
floor() | 舍去法取整 |
5)PHP文件目录函数库
函数 | 说明 |
---|---|
copy() | 复制文件到其他目录 |
file_exist() | 判断指定目录或文件是否存在 |
basename() | 返回路径中的文件名部分 |
… | … |
(2)扩展函数库
:被封装在相应的DLL文件中,使用时需要在PHP配置文件中将相应的DLL文件包含进来。
PHP控制流程结构
1. 条件控制语句
if 条件语句
格式:
if (
条件) {
代码}
if (
条件) {
代码1} else {
代码2}
if (
条件1) {
代码1} else if (
条件2) {
代码2} else{
代码3}
if (
条件1) {
代码1} elseif (
条件2) {
代码2} else{
代码3}
switch条件语句
- 注意:不同于其他计算机语言的是,在PHP中 switch语句是可以判断字符串的。
格式例子如下:
<?php
$cont = 59; //根据$cont的值,判断成绩等级
switch ($cont)
{
case $cont == 100; //如果等于100,则输出“满分”
echo "满分";
break;
case $cont >= 90; //如果大于等于90,则输出“优秀”
echo"优秀";
break;
case $cont >= 60; //如果大于等于60,则输出“及格”
echo "及格";
break ;
default : //如果小于60,则输出“不及格”
echo"不及格";
}
?>
2. 循环控制语句
while 循环语句
:先判断条件,当条件满足时执行语句块。
格式:while (
条件) {
代码}
do…while 循环语句
:判断之前先执行一次,循环到 while 部分才判断; 即使条件不满足,语句块也已经执行一次了。
格式:do { ... } while ( );
for 循环语句
格式:for (变量=初始值; 循环条件; 循环方式){代码}
例子如下:
foreach 循环语句
:一种遍历数组简便方法。
- foreach 仅能用于数组
格式:
foreach(
数组名as
$value)
代码;foreach(
数组名as
$key=>
$value)
代码;
3. 跳转语句
break;
: 终止当前循环,跳出循环结构
continue;
: 终止本次循环,继续下一次循环
4. 包含语句
(1)include()
:程序在读到 include 的文件时,才将它读进来。
- 当包含文件发生错误时,系统只给出警告,继续执行。
- 当多次调用相同文件时,程序会多次包含文件。
说明:void include("
文件名");
(2)include_once()
- 当多次调用相同文件时,程序只包含文件一次。
说明:void include_once("
文件名");
(3)require()
:程序在执行前就会先读入所指定的文件。
- 当包含文件发生错误时,系统输出错误信息并立即终止程序输出。
说明:void require("
文件名");
(4)require_once()
- 当多次调用相同文件时,程序只包含文件一次。
说明:void require_once("
文件名");
数组
数组概述
PHP 中的数组是一个关键字或值的集合(值可以是任何一种类型,包括另一个数组)。
数组类型
1. 数字索引数组
:下标由数字组成,默认从 0 开始。
格式: $
数组名 = array(
value1,
value2,
…);
例子:$arr = array(3, 5, 7, 9, 6);
2. 关联数组
:下标(键名)由数值和字符串混合的形式组成。
关联数组使用键名来访问存储在数组中的值。
格式: $
数组名 = array(
key1=>
value1 ,
key2=>
value2,
… );
例子:$arr = array("id"=>2, "title"=>3);
数组的创建和赋值
方法1:
$数组名[键名1]=元素值1;
$数组名[键名2]=元素值2;
...
- 键名(key)可以是数字也可以是字符串,元素值(value)可以是任何值。
方法2:
$
数组名 = array(
键名1=>
元素值1,
键名2=>
元素值2,
… );
例子:
数组的遍历
1. for ()
例子如下:
2. foreach ()
例子如下:
3. list() 函数
:把数组中的值赋给一些变量。
例子如下:
4. each() 函数
:返回当前元素的键名和键值,并将内部指针向前移动。
例子如下:
与数组相关的函数
count 函数
:统计数组条数
格式:count($
数组名);
is_array 函数
:判断数组
格式:is_array($
数组名);
array_push 函数
:向数组中添加元素
- 数组具有「栈 (Stack)」的特性
说明:int array_push ($
数组名,
新元素值1,
新元素值2,
… )
例子如下:
array_pop 函数
:获取数组中最后一个元素
说明:元素类型 array_pop($
数组名)
例子如下:
array_unique 函数
:删除数组中重复元素
说明:元素类型 array_unique($
数组名)
例子如下:
array_implode函数
:将数组元素转换成字符串
说明:array array_implode('
分隔符', $
数组名)
例子如下: