PHP
什么是PHP?
PHP(Hypertext Preprocessor,超文本预处理器)是一种服务器端的、跨平台的、HTML嵌入式的弱类型开源脚本语言。
1、服务器端:PHP需要使用服务器软件进行编译。
2、跨平台:PHP支持多种操作系统平台,并且能够被多种服务器软件编译。
3、HTML嵌入式:PHP代码是编写在HTML代码中的。
4、弱类型:PHP定义变量时不需要指明数据类型。
5、开源:即开发源代码,PHP的源代码是向所有人公开的。
6、脚本语言:PHP是以脚本的方式进行编译的,即只在被调用时进行编译。
安装环境
下载phpstudy 安装路径不要有空格和汉字
安装插件汉化包
hello.php
<?php
echo 'Hello World';
?>
放在网站根目录 然后浏览器访问http://localhost:8080/hello.php
如果出现Hello World 那么恭喜你!!
php标记
XML风格的标记 默认
### 脚本风格的标记
```
简短风格标记
<? ?>
ASP风格的标记
<% %>
php注释
单行注释
<?php
echo '这是单行注释'; //显示信息。
?>
多行注释
<?php
/*这是
多行
注释。*/
echo '这是多行注释';
?>
Shell注释
<?php
header("content-Type:text/html; charset=gb2312");
echo '这是Shell注释'; #显示信息。
?>
php输出
echo
echo 来输出一个或多个字符串
<?php
echo '使用echo输出字符串'; //使用echo输出字符串。
?>
print”来输出一个字符串
print '使用print输出字符串'; //使用print输出字符串。
?>
print和echo的作用基本一样,两者之间的区别在于echo没有返回值而print总是返回“1”,因此echo的执行速度相对来说稍快一些。
printf()
printf()”函数来输出格式化的字符串,语法格式如下:
常用的类型指示符
<?php
$num1 = 1; //定义一个整型变量。
$num2 = 2; //定义一个整型变量。
//计算“$num1”与“$num2”之和。
$sum = $num1 + $num2;
//使用printf()函数输出格式化的字符串。
printf('%d + %d = %d', $num1, $num2,$sum);
?>
print_r()
print_r()函数来输出数组结构
<?php
$arr = array('this', 'is', 'an', 'array'); //定义一个数组变量。
print_r($arr); //使用print_r()函数输出数组结构。
?>
标量数据类型
boolean
布尔型(boolean)数据类型用于存放一个真(true)或假(false)值,其中“true”和“false”为PHP的内部关键字。
布尔数据类型主要用于应用程序的逻辑运算,大多使用在条件控制语句或循环控制语句的条件表达式中。
<?php
$boo = true; //定义一个布尔型变量,并赋值为“true”。
//判断$boo的值是否为“true”。
if ($boo == true)
echo '变量$boo为真'; //显示信息。
else
echo '变量$boo为假'; //显示信息。
?>
string
字符串型(string)数据类型用于存放一个连续的字符序列,即由一连串字符组成的字符串,而这些字符可以是数字、字母、汉字或符号。
在PHP中定义字符串的方法有单引号(')、双引号(")和界定符(<<<)三种。
单引号
使用单引号定义字符串,即使用一对 ' 将字符串的字符包含在内。
<?php
//定义一个字符串型变量,并赋值为“this is a string”。
$str = 'this is a string';
echo $str; //显示信息。
?>
双引号
使用双引号定义字符串,即使用一对 " 将字符串的字符包含在内。
<?php
//定义一个字符串型变量,并赋值为“this is a string”。
$str = "this is a string";
echo $str; //显示信息。
?>
<?php
//定义一个字符串型变量,并赋值为“this is a string”。
$str = 'this is a string';
echo '使用单引号输出:$str'; //显示信息。
echo '<br/>'; //换行。
echo "使用双引号输出:$str"; //显示信息。
?>
界定符
使用界定符定义字符串,即使用一对 <<<str str; 将字符串的字符包含在内,其中 str 为指定的标识符。
<?php
//定义一个字符串型变量,并赋值为“this is a string”。
$str = <<<std
this is a string
std;
echo $str; //显示信息。
?>
integer
整型(integer)数据类型用于存放整数,且只能存放整数,存放的整数可以为正数或负数,也可以用十进制、八进制或十六进制来表示。
如果需要用八进制来表示整型,那么数字的前面必须加上“0”;而如果需要用十六进制来表示整型,那么数字的前面必须加上“0x”。
<?php
//定义一个用十进制表示的整型变量。
$num1 = 1234567890;
//定义一个用八进制表示的整型变量。
$num2 = 01234567890;
//定义一个用八进制表示的整型变量。
$num3 = 01234567;
//定义一个用十六进制表示的整型变量。
$num4 = 0x1234567890;
//显示信息。
echo '数值1234567890不同进制的输出结果:<br/>';
echo '十进制的输出结果:'.$num1.'<br/>';
echo '第一个八进制的输出结果:'.$num2.'<br/>';
echo '第二个八进制的输出结果:'.$num3.'<br/>';
echo '十六进制的输出结果:'.$num4;
?>
float
浮点型(float)数据类型用于存放数值,这个数值可以是超过整型范围的整数,也可以是小数。而浮点型数值的书写格式有两种:
1、标准格式:如3.1415、-34.56。
2、科学计数格式:如3.456E1、987.65E-3。
<?php
//用标准格式定义一个浮点型变量。
$num1 = 3.14159265359;
//用科学计数格式定义一个浮点型变量。
$num2 = 314159265359E-11;
//显示信息。
echo '圆周率的两种书写格式:<br/>';
echo '标准格式:'.$num1.'<br/>';
echo '科学计数格式:'.$num2;
?>
复合数据类型
复合数据类型存储的是按照一定规则组成的元素类型的数据。
在PHP中,可以使用array和object两种复合数据类型。
数组(array)
数组(array)是一组数据的集合,即将一系列数据组织起来,形成一个可操作的整体,这些数据可以是标量数据、数组、对象和资源等。
数组中的每个数据都被称为一个“元素”,元素包括“索引(键名)”和“值”两个部分,而在PHP中索引可以由数值(数字索引)或字符串(关联索引)组成,而值则可以是多种数据类型。
在PHP中,定义数组的语法格式有三种:
1、$array = array('value1', 'value2',……);
2、$array[key] = 'value';
3、$array = array(key1 => 'value1',key2 => 'value2', ……);
其中,“key”为数组元素的索引,“value”为数组元素的值。
<?php
$arr1 = array('this', 'is', 'an','array'); //定义一个数组。
print_r($arr1); //输出数组结构。
echo '<br/>'; //换行。
//定义一个数组。
$arr2[0] = 'this';
$arr2[1] = 'is';
$arr2[2] = 'an';
$arr2[3] = 'array';
print_r($arr2); //输出数组结构。
echo '<br/>'; //换行。
//定义一个数组。
$arr3 = array(0 => 'this', 1=> 'is', 2 => 'an', 3 => 'array');
print_r($arr3); //输出数组结构。
?>
对象(object)
对象(object)就是一组数据和与这组数据相关的操作封装在一起而形成的一个实体。
特殊数据类型
在PHP中,可以使用resource和null两种特殊数据类型。
资源(resource)
资源(resource)是一种特殊变量,又称为“句柄”,是对外部资源的一个引用,即需要通过专门的函数来建立和使用,主要用于文件操作、连接数据库或创建图形画布区域等。
在PHP中,系统会自动启动垃圾回收机制,即自动释放不再使用的资源,避免内存被消耗殆尽,提高应用程序的运行速度。因此,PHP很少需要手工释放资源。
空值(null)
空值(null)表示没有为变量设置任何值。在PHP中,变量为空值的情况有三种:
1、在定义变量时,没有为变量赋任何值。
2、变量被赋值为空值。
3、被“unset()”函数处理过的变量。
<?php
$null1; //定义一个变量,但不为其赋值。
if (is_null($null1)) //判断变量是否为空值。
echo '$null1为空值。<br/>'; //显示结果。
$null2 = null; //定义一个变量,并为其赋空值。
if (is_null($null2)) //判断变量是否为空值。
echo '$null2为空值。<br/>'; //显示结果。
$null3 = '空值'; //定义一个变量,并为其赋为“空值”。
unset($null3); //释放变量$null3。
if (is_null($null3)) //判断变量是否为空值。
echo '$null3为空值。'; //显示结果。
?>
检测数据类型
有时根据功能要求,需要检测某个数据属于哪种类型,这时可以通过检测数据类型函数分别针对不同数据类型的数据进行检测,从而判断数据是否属于某个数据类型,即如果符合返回true,否则返回false。
针对上述八种数据类型,PHP分别提供了九种基本的检测数据类型的函数:
1、“is_bool()”函数:检测变量是否属于布尔型。
2、“is_string()”函数:检测变量是否属于字符串型。
3、“is_numeric()”函数:检测变量是否是由数字组成的字符串。
4、“is_integer()”函数:检测变量是否属于整型。
5、“is_float()”函数:检测变量是否属于浮点型。
6、“is_null()”函数:检测变量是否为空值。
7、“is_array()”函数:检测变量是否属于数组类型。
8、“is_object()”函数:检测变量是否属于对象类型。
9、“is_resource()”函数:检测变量是否属于资源类型。
<?php
$boo = true; //定义一个布尔型变量。
if (is_bool($boo)) //判断变量是否属于布尔型。
echo '$boo为布尔型。<br/>'; //显示结果。
$str = '123'; //定义一个字符串型变量。
if (is_string($str)) //判断变量是否属于字符串型。
echo '$str为字符串型。<br/>'; //显示结果。
//判断变量是否是由数字组成的字符串。
if (is_numeric($str))
//显示结果。
echo '$str是由数字组成的字符串。<br/>';
$num1 = 123; //定义一个整型变量。
if (is_integer($str)) //判断变量是否属于整型。
echo '$num1为整型。<br/>'; //显示结果。
$num2 = 1.23; //定义一个浮点型变量。
if (is_float($num2)) //判断变量是否属于浮点型。
echo '$float为浮点型。<br/>'; //显示结果。
$null; //定义一个变量,但不为其赋值。
if (is_null($null)) //判断变量是否为空值。
echo '$null为空值。<br/>'; //显示结果。
$arr = array('this', 'is', 'an', 'array'); //定义一个数组。
if (is_array($arr)) //判断变量是否属于数组类型。
echo '$arr为数组。'; //显示结果。
?>
转换数据类型
虽然PHP是一种弱类型的语言,但在实际应用中有时仍需要转换数据类型。在PHP中,转换数据类型的方法有两种:
1、在变量前加上括号,并在括号中写入类型名称。
2、使用“settype()”函数转换数据类型,语法格式如下:
settype()函数的返回值为布尔值,即转换成功返回“true”,否则返回“false”。其中“$var”为需要改变数据类型的变量;“$type”为需要变成的数据类型。
<?php
$str = '123.456'; //定义一个字符串型变量。
$num = (float)$str; //将字符串型变量转换为浮点型。
if (is_float($num)) //判断变量是否属于浮点型。
echo '$num为浮点型。<br/>'; //显示结果。
echo '$num = '.$num.'<br/>'; //显示结果。
//将浮点型变量转换为整型。
$boo = settype($num, 'integer');
if ($boo) //判断是否转换成功。
echo '转换成功!<br/>'; //显示结果。
else
echo '转换失败!<br/>'; //显示结果。
if (is_integer($num)) //判断变量是否属于整型。
echo '$num为整型。<br/>'; //显示结果。
echo '$num = '.$num; //显示结果。
?>
常量(重点)
常量存放的是值不变化的、固定的数据,即在脚本的其他任何位置都不能修改常量的值,比如:圆周率、自然对数底和牛顿引力等。
声明常量
在PHP中,需要使用“define()”函数来声明常量,语法格式如下:
“define()”函数,如果声明成功则返回“true”,否则返回“false”。其中“$name”为常量名;“$value”为常量值;“$case_insensitive”为可选参数,用于指定常量名是否大小写敏感。
使用常量
在PHP中,获取常量的值有两种方法:
(1)使用常量名直接获取常量值。
(2)使用“constant()”函数获取常量值,语法格式如下:
constant()函数的返回值为常量值。其中“$name”为常量名或存储常量名的变量。
判断常量是否被定义
在PHP中,使用“defined()”函数判断常量是否被定义,语法格式如下:
“defined()”函数,如果常量已经被定义则返回“true”,否则返回“false”。其中“$name”为常量名或存储常量名的变量。
<?php
define(CONSTANT, '常量'); //定义一个常量。
//定一个字符串型变量,存放常量名。
$name = 'CONSTANT';
echo CONSTANT. '<br/>'; //显示结果。
//判断常量是否被定义。
$boo = defined($name);
if ($boo)
{
echo '常量已被定义!<br/>'; //显示结果。
echo constant($name); //显示结果。
}
?>
预定义常量
在PHP中,除了可以声明自定义常量外,还可以使用预定义常量来获取PHP中的信息,常用的预定义常量如下表所示。
变量(重点)
变量与常量正好相反,它用于存放的是可变的数据,即在程序执行过程中变量的值可以发生变化。
声明和使用变量
在声明变量时,系统会为程序中的每一个变量分配一个存储单元,这些变量都是使用“变量名”来标识,即变量名实质上就是计算机内存单元的名称,因此通过变量名即可访问内存中的数据。
在PHP中,使用变量之前并不需要进行声明,即只需要为变量赋值,而PHP的变量名用“$”和标识符表示,且区分大小写。
变量赋值就是给变量一个具体的数据值,通常是通过赋值运算符来实现的,在PHP中为变量赋值的方法有三种:
1、直接赋值:直接将数据值赋值给变量。
2、变量间赋值:将一个变量的数据值赋值给另一个变量。
3、引用赋值:使用“&”符号将一个变量的内存地址传给另一个变量,即再为该内存中的数据起一个“别名”。当改变其中一个变量的值时,另一个变量也会跟着发生变化。
<?php
$str1 = 'str1'; //直接赋值。
echo '$str1的值:'.$str1.'<br/>'; //显示结果。
$str2 = $str1; //变量间赋值。
echo '$str2的值:'.$str2.'<br/>'; //显示结果。
$str3 = & $str1; //引用赋值。
echo '$str3的值:'.$str3.'<br/>'; //显示结果。
$str1 = 'str2'; //修改变量的值。
echo '$str1的值:'.$str1.'<br/>'; //显示结果。
echo '$str2的值:'.$str2.'<br/>'; //显示结果。
echo '$str3的值:'.$str3; //显示结果。
//定义一个值为“str1”变量“$str1”,然后将该变量的值赋值给另一个变量“str2”,再将该变量引用给另一个变量“$str3”,最后输出结果。
?>
变量的作用域
变量的作用域是指能够使用变量的有效范围,变量必须在其有效范围内使用,否则就会失去其意义。在PHP中,变量的作用域有三种:
1、局部变量:变量定义在函数内部,其作用域为所在函数。
2、全局变量:变量定义在所有函数以外,其作用域为整个PHP文件。
3、静态变量:能够在函数调用结束之后保留变量值,当再次回到其作用域时,可以继续使用保留的变量值。
<?php
//定义一个全局变量。
$str = '全局变量:在函数以外输出。';
//定义一个自定义函数。
function example()
{
//定义一个局部变量。
$str = '局部变量:调用函数时输出。';
echo $str.'<br/>'; //显示结果。
}
example(); //调用函数。
echo $str; //显示结果。
//在函数内外定义并输出变量名相同的局部变量“局部变量:调用函数时输出”和全局变量“全局变量:在函数以外输出”。
?>
<?php
$str = '全局变量'; //定义一个全局变量。
//定义一个自定义函数。
function example()
{
echo '直接使用全局变量:'.$str.'<br/>'; //显示结果。
global $str; //使用关键字“global”调用全局变量。
echo '通过global使用全局变量:'.$str; //显示结果。
}
example(); //调用函数。
//在自定义函数内使用并输出值为“全局变量”的全局变量。
?>
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
//定义一个自定义函数。
function example1()
{
$num = 0; //定义一个普通变量。
$num++; //递增。
echo $num.' '; //显示结果。
}
//定义一个自定义函数。
function example2()
{
static $num = 0; //定义一个静态变量。
$num++; //递增。
echo $num.' '; //显示结果。
}
echo '普通变量输出:'; //显示结果。
//循环10次。
for ($i = 0; $i < 10; $i++)
{
example1(); //调用函数。
}
echo '<br/>静态变量输出:'; //显示结果。
//循环10次。
for ($i = 0; $i < 10; $i++)
{
example2(); //调用函数。
}
//分别使用普通变量和静态变量在自定义函数中输出递增数字。
?>
可变变量
可变变量是一种非常特殊的变量,它允许动态地改变一个变量的名称,即可变变量的名称由另一个变量的值来确定。
在PHP中,在变量的前面再加上一个“$”即可实现可变变量。
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
$str1 = 'str2'; //定义一个字符串型变量。
$str2 = '可变变量'; //定义一个字符串型变量。
echo '$str1的值:'.$str1.'<br/>'; //显示结果。
echo '$str2的值:'.$str1.'<br/>'; //显示结果。
//定义并输出一个值为“可变变量”的可变变量。
?>
预定义变量
在PHP中,除了可以使用自定义变量外,还可以使用预定义变量来获取用户会话、用户操作系统环境和本地操作系统环境等信息,常用的预定义变量如下表所示。
运算符(重点)
算数运算符
算术运算符就是处理算术运算的符号,即对数字数据进行加、减、乘、除和取余等运算。算术运算符是数字处理中应用最多的、最常用的运算符,PHP中的算术运算符如下表所示。
字符串运算符
字符串运算符的作用是将两个字符串连接起来,并结合成一个新的字符串。在PHP中,字符串运算符只有一个,即英文句号“.”。
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
$str1 = '字符串'; //定义一个字符串型变量。
$str2 = '运算符'; //定义一个字符串型变量。
//显示结果。
echo '$str1 = '.$str1.', $str2 = '.$str2.'<br/>';
echo '$str1.$str2 = '.($str1.$str2);
//使用字符串运算符连接值为“字符串”和“运算符”两个字符串变量,并输出组合成的新字符串。
?>
赋值运算符
赋值运算符的作用是将右边的值赋值给左边的变量。PHP中的赋值运算符如下表所示。
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
$num = 1; //将“1”赋值给变量“$num”。
echo '$num = '.$num.'<br/>'; //显示结果。
$num += 1; //将“$num”加“1”后赋值给“$num”。
echo '$num += 1的结果:'.$num.'<br/>'; //显示结果。
$num -= 1; //将“$num”减“1”后赋值给“$num”。
echo '$num -= 1的结果:'.$num.'<br/>'; //显示结果。
$num *= 2; //将“$num”乘“2”后赋值给“$num”。
echo '$num *= 2的结果:'.$num.'<br/>'; //显示结果。
$num /= 2; //将“$num”除“2”后赋值给“$num”。
echo '$num /= 2的结果:'.$num.'<br/>'; //显示结果。
//将“$num”除“2”取余后赋值给“$num”。
$num %= 2;
echo '$num %= 2的结果:'.$num.'<br/>'; //显示结果。
$str = '赋值'; //定义一个字符串型变量。
echo '$str = '.$str.'<br/>'; //显示结果。
//将“$str”连接“运算符”后赋值给“$str”。
$str .= '运算符';
echo '$str .= \'运算符\'的结果:'.$str; //显示结果。
?>
逻辑运算符
逻辑运算符的作用是将多个逻辑命题连接成更复杂的逻辑命题,从而进行实现逻辑判断,主要用在条件控制语句的判断表达式中。PHP中的逻辑运算符如下表所示。
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
$boo1 = true; //定义一个布尔型变量。
$boo2 = false; //定义一个布尔型变量。
//显示结果。
echo '$boo1 = '.var_export($boo1, true).', $boo2 = '.var_export($boo2,tru
e).'<br/>';
echo '$boo1 && $boo2 = '.var_export($boo1 && $boo2,true).'<br/>';
echo '$boo1 && $boo1 = '.var_export($boo1 && $boo1,true).'<br/>';
echo '$boo2 && $boo2 = '.var_export($boo2 && $boo2,true).'<br/>';
echo '$boo1 || $boo2 = '.var_export($boo1 || $boo2, true).'<br/>';
echo '$boo1 || $boo1 = '.var_export($boo1 || $boo1, true).'<br/>';
echo '$boo2 || $boo2 = '.var_export($boo2 || $boo2, true).'<br/>';
echo '$boo1 xor $boo2 = '.var_export($boo1 xor $boo2, true).'<br/>';
echo '$boo1 xor $boo1 = '.var_export($boo1 xor $boo1, true).'<br/>';
echo '$boo2 xor $boo2 = '.var_export($boo2 xor $boo2, true).'<br/>';
echo '!$boo1 = '.var_export(!$boo1, true);
?>
比较运算符(重点)
比较运算符的作用是对变量或表达式的结果进行大小、真假等的比较,如果比较结果为真,则返回“true”,如果比较结果为假,则返回“false”。PHP中的比较运算符如下表所示。
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
$num = 3; //定义一个整型变量。
//显示结果。
echo '$num = '.$num.'<br/>';
echo '$num < 4的结果:'.var_export($num < 4, true).'<br/>';
echo '$num > 2的结果:'.var_export($num > 2, true).'<br/>';
echo '$num <= 4的结果:'.var_export($num <= 2, true).'<br/>';
echo '$num >= 2的结果:'.var_export($num >= 2, true).'<br/>';
echo '$num == 3的结果:'.var_export($num == 3, true).'<br/>';
echo '$num != 2的结果:'.var_export($num == 2, true).'<br/>';
echo '$num === 3的结果:'.var_export($num == 3, true).'<br/>';
echo '$num !== \'3\'的结果:'.var_export($num !== '3', true);
?>
错误控制运算符(重点)
错误控制运算符是PHP中独特的一种运算符,其作用是对程序中出现错误的表达式进行操作,即对错误信息进行屏蔽。在PHP中,在错误的表达式前面加上错误控制运算符“@”即可屏蔽错误信息。
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
$num1 = (5 / 0); //定义一个整型变量。
$num2 = @ (5 / 0); //定义一个整型变量。
?>
三元运算符
三元运算符,也成为三目运算符,其作用是根据一个表达式在另外两个表达式中选择一个来执行,语法格式如下:
表达式1?表达式2:表达式3;
如果表达式1的结果为真,执行表达式2,如果表达式1的结果为假,则执行表达式3。
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
//显示结果。
echo (true?'表达式1为真':'表达式1为假');
echo '<br/>';
echo (false?'表达式1为真':'表达式1为假');
?>
位运算符
位运算符的作用将二进制位从低位到高位对齐后进行运算。PHP中的位运算符如下表所示。
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
$num1 = 13; //定义一个整型变量。
$num2 = 11; //定义一个整型变量。
//显示结果。
echo '$num1 = '.$num1.', $num2 = '.$num2.'<br/>';
echo '$num1 & $num2 = '.($num1 & $num2).'<br/>';
echo '$num1 | $num2 = '.($num1 | $num2).'<br/>';
echo '$num1 ^ $num2 = '.($num1 ^ $num2).'<br/>';
echo '~$num1 = '.(~$num1).'<br/>';
echo '$num1 << 1 = '.($num1 << 1).'<br/>';
echo '$num1 >> 1 = '.($num1 >> 1);
?>
运算符的优先级
表达式可能是由多个不同的运算符连接起来的,不同的运算符顺序可能得出不同结果,甚至出现错误运算错误,因此必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。
运算符优先级就是在表达式中哪一个运算符先计算、哪一个后计算,其遵循的规则是:
1、优先级高的操作先执行,优先级低的操作后执行。
2、同一优先级的操作按照从左到右的顺序执行。
3、括号内的操作最先执行。
运算符的优先级
表达式和函数
表达式
表达式是通过具体的代码来实现的,即由多个符号集合起来组成的代码,是构成PHP程序语言的基本元素,也是PHP最重要的组成元素。
组成表达式的符号是对PHP解释程序有具体含义的最小单元,可以是变量名、函数名、运算符和数值等。
表达式和语句之间的区别在于分号“;”,即一个表达式之后加上一个分号之后就是一条语句。
函数
函数就是将一些需要重复使用的功能代码写在一个独立的代码块中,并在需要时单独调用。
在PHP中,使用关键字“function”定义函数,语法格式如下:
其中“fun_name”为函数名;“$arg1”和“$…”为函数的参数;“fun_body”为函数的主体,即功能实现代码。
在函数定义好之后,只需要使用函数名并赋予正确的参数,即可调用函数,语法格式如下:
其中“fun_name”为函数名;“$arg1”和“$…”为赋予函数的参数。
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
//定义一个函数。
function example($str)
{
echo $str; //显示结果。
}
example('定义和调用函数'); //调用函数。
?>
定义函数时,还有一种参数的设置方式,即可选参数,也就是可以指定某个参数为可选参数。在PHP中,将参数放在参数列表末位,并指定其默认值,即可指定可选参数。
调用函数时,如果设置了可选参数值,那么可选参数的值为调用时的设定值;如果没有设置可选参数值,那么可选参数的值为定义时的默认值。
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
//定义一个函数。
function example($num1, $num2 =2)
{
//显示结果。
echo '$num1 = '.$num1.',$num2 = '.$num2.'<br/>';
echo '$num1 * $num2 * 2 ='.($num1 * $num2 * 2);
}
echo 'exmaple(1,3)<br/>'; //显示结果。
example(1, 3); //调用函数。
echo '<br/>'; //换行。
echo'exmaple(1)<br/>'; //显示结果。
example(1); //调用函数。
?>
数据是如何在函数间传递的?
在定义和调用函数时存在着两种参数:形参和实参。形参是定义函数时定义的参数;实参是调用函数时传入的参数。也就是说,调用函数时,需要将实参的值传递给形参。在PHP中,实参与形参之间数据传递的方式有两种:
1、按值传递:按值传递就是将实参的值赋值给对应的形参,在函数主体的操作都是针对形参进行,操作的结果不会影响到实参,即函数返回之后,实参的值不会改变。
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
//定义一个函数。
function example($num)
{
$num *= 2; //进行算术运算。
echo '形参:$num = '.$num.'<br/>'; //显示结果。
}
$num = 1; //定义一个整形变量。
echo '实参:$num = '.$num.'<br/>'; //显示结果。
example($num); //调用函数。
echo '函数调用之后的实参:$num = '.$num; //显示结果。
?>
2、按引用传递:按引用传递就是将实参的内存地址传递给对应的形参,在函数主体针对形参进行的操作都会影响到实参,即函数返回之后,实参的值会发生改变。引用传递参数的方式需要在定义函数时在形参前面加上“&”符号。
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
//定义一个函数。
function example(&$num)
{
$num *= 2; //进行算术运算。
echo '形参:$num = '.$num.'<br/>'; //显示结果。
}
$num = 1; //定义一个整形变量。
echo '实参:$num = '.$num.'<br/>'; //显示结果。
example($num); //调用函数。
echo '函数调用之后的实参:$num = '.$num; //显示结果。
?>
返回函数的操作结果
在实际开发中,经常需要将函数的操作结果返回给调用者。在PHP中,通常使用关键字“return”来返回函数的操作结果,语法格式如下:
“return”会将程序控制权返回到调用者的作用域,并将函数的操作结果“$value”返回给调用者。
变量函数
变量函数和可变变量非常相似,可以通过变量来调用,即根据变量的值来调用相应的函数。
在PHP中,在变量名后面加上一对小括号,并在其中赋予正确的参数,即可实现变量函数。
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
//定义一个函数。
function example()
{
echo '变量函数'; //显示结果。
}
$str = 'example'; //定义一个字符串型变量。
$str(); //调用变量函数。
?>
引用函数
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
//定义一个函数。
function &example()
{
return '引用函数'; //返回结果。
}
$str = &example(); //对函数进行引用。
echo $str; //显示结果。
?>
当不需要对函数继续引用时,可以使用“unset()”函数取消对函数的引用。
<?php
//设置编码格式,正确显示中文。
header("content-Type:text/html; charset=gb2312");
//定义一个函数。
function &example()
{
return '引用函数'; //返回结果。
}
$str = &example(); //对函数进行引用。
echo $str.'<br/>'; //显示结果。
unset($str); //取消引用。
echo $str; //显示结果。
?>