PHP函数
PHP函数是一段可以重复使用多次的代码。 它可以接受输入作为参数列表和返回值。 PHP中有成千上万的内置函数。
在PHP中,我们可以定义条件函数,函数内的函数和递归函数。
PHP函数的优点
代码重用性:PHP函数只定义一次,可以多次调用,就像其他编程语言一样。
使用更少的代码:它节省了大量代码,因为我们不需要多次重写逻辑。 通过使用函数,可以只写一次逻辑并重用它。
易于理解:PHP函数分离了编程逻辑。 因此,更容易理解应用程序的流程,因为每个逻辑都被划分为函数的形式。
PHP用户定义函数
我们可以很容易地声明和调用用户定义的函数。下面来看看看声明用户定义函数的语法。
function functionname(){
//code to be executed
}
执行上面代码结果如下 -
PHP函数示例1
文件: function1.php
<?php
function sayHello(){
echo "Hello PHP Function";
}
sayHello();//calling function
?>
执行上面代码结果如下 -
Hello PHP Function
函数参数
我们可以通过用逗号分隔的参数传递PHP函数中的信息。
PHP支持按值调用(默认),通过引用调用,默认参数值和可变长度参数列表。
下面来看看看在PHP函数中传递单个参数的例子。
文件: functionarg.php
<?php
function sayHello($name){
echo "Hello $name<br/>";
}
sayHello("MaxSu");
sayHello("MinSu");
sayHello("John");
?>
执行上面代码结果如下 -
Hello MaxSu
Hello MinSu
Hello John
下面来看看看在PHP函数中传递两个参数的例子。
文件: functionarg2.php
<?php
function sayHello($name,$age){
echo "Hello $name, you are $age years old<br/>";
}
sayHello("Maxsu",27);
sayHello("Minsu",26);
sayHello("John",23);
?>
执行上面代码结果如下 -
Hello Maxsu, you are 27 years old
Hello Minsu, you are 26 years old
Hello John, you are 23 years old
PHP引用调用
传递给函数的值默认情况下不会修改实际值(通过值调用)。 但我们可以通过传递值作为参考(引用)。
默认情况下,传递给函数的值是通过值调用。 要传递值作为参考(引用),您需要在参数名称前使用&符号(&)。
下面来看看一个在PHP中通过引用调用的简单示例。
File: functionref.php
<?php
function adder(&$str2)
{
$str2 .= 'Call By Reference';
}
$str = 'Hello ';
adder($str);
echo $str;
?>
执行上面代码结果如下 -
Hello Call By Reference
PHP函数:默认参数值
我们可以在函数中指定默认参数值。 在调用PHP函数时,如果不指定任何参数,它将采用默认参数。 下面来看看一个在PHP函数中使用默认参数值的简单示例。
文件: functiondefaultarg.php
<?php
function sayHello($name="default_name"){
echo "Hello $name<br/>";
}
sayHello("maxsu");
sayHello();//passing no value
sayHello("John");
?>
执行上面代码结果如下 -
Hello maxsu
Hello default_name
Hello John
PHP函数:返回值
下面来看看一个有返回值的PHP函数的例子。
文件: functiondefaultarg.php
<?php
function cube($n){
return $n*$n*$n;
}
echo "Cube of 3 is: ".cube(3);
?>
执行上面代码结果如下 -
Cube of 3 is: 27
PHP参数化函数
PHP参数化函数是带有参数的函数。 您可以在函数中传递任意数量的参数。 这些传递的参数作为函数中的变量。
它们在函数名称之后,在括号内指定。输出取决于作为参数传递到函数中的动态值。
PHP参数化示例1
加减法
在这个例子中,我们在两个函数add()和sub()中传递了两个参数$x和$y。
文件:para.php
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8" />
<title>参数加法和减法示例</title>
</head>
<body>
<?php
//Adding two numbers
function add($x, $y) {
$sum = $x + $y;
echo "Sum of two numbers is = $sum <br><br>";
}
add(300, 700);
//Subtracting two numbers
function sub($x, $y) {
$diff = $x - $y;
echo "Difference between two numbers is = $diff";
}
sub(1000, 500);
?>
</body>
</html>
执行上面代码得到以下结果 -
PHP参数化示例2
动态数字的加法和减法
在这个例子中,我们在两个函数add()和sub()中传递了两个参数$x和$y。
文件:para.php
<?php
//add() function with two parameter
function add($x,$y)
{
$sum=$x+$y;
echo "Sum = $sum <br><br>";
}
//sub() function with two parameter
function sub($x,$y)
{
$sub=$x-$y;
echo "Diff = $sub <br><br>";
}
//call function, get two argument through input box and click on add or sub button
if(isset($_POST['add']))
{
//call add() function
add($_POST['first'],$_POST['second']);
}
if(isset($_POST['sub']))
{
//call add() function
sub($_POST['first'],$_POST['second']);
}
?>
<form method="post">
Enter first number: <input type="number" name="first"/><br><br>
Enter second number: <input type="number" name="second"/><br><br>
<input type="submit" name="add" value="ADDITION"/>
<input type="submit" name="sub" value="SUBTRACTION"/>
</form>
分别输入:100和200,点击“ADDITION”得到以下结果 -
PHP函数按值调用
PHP允许通过值和引用调用函数。在通过值调用PHP的情况下,如果在函数内修改,则不会修改实际值。
让我们通过例子的帮助理解按值调用的概念。
实例1
在这个例子中,变量$str被传递给加法器函数,它与’Call By Value‘字符串连接。 但是,打印$str变量的结果只是:’Hello‘。 这是因为修改值只是在局部变量$str2中完成。 它不反映到$str变量中。
<?php
function adder($str2)
{
$str2 .= 'Call By Value';
}
$str = 'Hello ';
adder($str);
echo $str;
?>
执行结果 -
Hello
实例2
让我们通过另一个例子来理解PHP按值调用的概念。
<?php
function increment($i)
{
$i++;
}
$i = 10;
increment($i);
echo $i;
?>
执行结果 -
10
PHP函数按引用调用
在PHP中,通过引用调用的情况下,如果在函数内修改实际值,则修改了变量的值。 在这种情况下,需要使用&(和号)符号与形式参数。&表示变量的引用。
让我们通过下面的例子来帮助理解引用调用的概念。
实例1
在这个例子中,变量$str被传递给加法器函数,它与“Call By Reference”字符串连接。 在这里,打印$str变量的结果值为:’this is Call By Reference‘。 这是因为改变的是变量$str的实际值。
<?php
function adder(&$str2)
{
$str2 .= 'Call By Reference';
}
$str = 'This is ';
adder($str);
echo $str;
?>
输出结果如下 -
This is Call By Reference
实例2
让我们通过另一个例子来理解PHP中引用调用的概念。
<?php
function increment(&$i)
{
$i++;
}
$i = 10;
increment($i);
echo $i;
?>
输出结果如下 -
11
PHP带默认参数值函数
PHP允许您定义C++样式的默认参数值。 在这种情况下,如果不传递任何值到函数,它将使用默认参数值。
下面来看看看在PHP函数中使用默认参数的简单例子。
实例1
<?php
function sayHello($name="Ram"){
echo "Hello $name<br/>";
}
sayHello("Maxsu");
sayHello();//passing no value
sayHello("Vimsu");
?>
执行上面代码得到以下结果 -
Hello Maxsu
Hello Ram
Hello Vimsu
实例2
<?php
function greeting($first="Max",$last="su"){
echo "Greeting: $first $last<br/>";
}
greeting();
greeting("Min");
greeting("Michael","Clark");
?>
执行上面代码得到以下结果 -
Greeting: Max su
Greeting: Min su
Greeting: Michael Clark
实例3
<?php
function add($n1=10,$n2=10){
$n3=$n1+$n2;
echo "Addition is: $n3<br/>";
}
add();
add(20);
add(40,40);
?>
?>
执行上面代码得到以下结果 -
Addition is: 20
Addition is: 30
Addition is: 80
PHP可变长度参数函数
PHP支持可变长参数函数。这让我们可以在函数中传递0,1,...或n个参数。 为此,您需要在参数名称前使用3个省略号(点)。
3点(...)概念是从PHP 5.6开始实现的可变长参数。下面来看看一个简单的例子PHP变长参数函数。
<?php
function add(...$numbers) {
$sum = 0;
foreach ($numbers as $n) {
$sum += $n;
}
return $sum;
}
echo add(1, 2, 3, 4);
?>
输出结果如下 -
10
PHP递归函数
PHP还支持递归函数调用像C/C++。 在这种情况下,我们在函数内调用当前函数。 它也称为递归。
建议避免递归函数调用超过200个递归级别,因为它可能会摧毁堆栈,并最终可能导致脚本的终止。
示例1:打印数字
<?php
function display($number) {
if($number<=5){
echo "$number <br/>";
display($number+1);
}
}
display(1);
?>
执行上面代码,得到以下结果 -
1
2
3
4
5
示例2:数字阶乘
<?php
function factorial($n)
{
if ($n < 0)
return -1; /*Wrong value*/
if ($n == 0)
return 1; /*Terminating condition*/
return ($n * factorial ($n -1));
}
echo factorial(5);
?>
执行上面代码得到以下结果 -
120
PHP数组
PHP数组是一个有序映射(包含基于键的值)。 它用于在单个变量中保存相似类型的多个值。
PHP数组的优点
更少的代码:不需要定义多个变量。
易于遍历: 通过使用单循环,遍历数组的所有元素。
排序: 可以对数组的元素进行排序。
PHP数组类型
PHP中有3种类型的数组。
- 索引数组
- 关联数组
- 多维数组
PHP索引数组
PHP索引是由从0开始的数字表示。我们可以在PHP数组中存储数字,字符串和对象。 默认情况下,所有PHP数组元素都被分配给索引号。
有两种方法来定义索引数组:
第一种方式:
<?php
$season=array("summer","winter","spring","autumn");
// 等效于以下方式
$season=array(0=>"summer",1=>"winter",2=>"spring",3=>"autumn");
?>
第二种方式:
<?php
$season[0]="summer";
$season[1]="winter";
$season[2]="spring";
$season[3]="autumn";
?>
示例
文件:array1.php
<?php
$season=array("summer","winter","spring","autumn");
echo "Season are: $season[0], $season[1], $season[2] and $season[3]";
?>
执行上面代码得到以下结果 -
Season are: summer, winter, spring and autumn
文件: array2.php
<?php
$season[0]="summer";
$season[1]="winter";
$season[2]="spring";
$season[3]="autumn";
echo "Season are: $season[0], $season[1], $season[2] and $season[3]";
?>
执行上面代码得到以下结果 -
Season are: summer, winter, spring and autumn
PHP关联数组
我们可以使用=>符号将名称与PHP中的每个数组元素的值相关联。
有两种方法来定义关联数组:
第一种方式:
<?php
$salary=array("key1"=>"350000","key2"=>"450000","minsu"=>"200000");
?>
第二种方式:
<?php
$salary["key1"]="350000";
$salary["key2"]="450000";
$salary["minsu"]="200000";
?>
关联数组示例
文件: arrayassociative1.php
<?php
$salary=array("Hema"=>"350000","John"=>"450000","Kartik"=>"200000");
echo "Hema salary: ".$salary["Hema"]."<br/>";
echo "John salary: ".$salary["John"]."<br/>";
echo "Kartik salary: ".$salary["Kartik"]."<br/>";
?>
执行上面代码得到以下结果 -
Hema salary: 350000
John salary: 450000
Kartik salary: 200000
文件: arrayassociative2.php
<?php
$salary["Hema"]="350000";
$salary["John"]="450000";
$salary["Kartik"]="200000";
echo "Hema salary: ".$salary["Hema"]."<br/>";
echo "John salary: ".$salary["John"]."<br/>";
echo "Kartik salary: ".$salary["Kartik"]."<br/>";
?>
执行上面代码得到以下结果 -
Hema salary: 350000
John salary: 450000
Kartik salary: 200000
PHP索引数组
PHP索引数组是一个数组,默认情况下由索引号表示。 数组的所有元素是由从0开始的索引号来表示的。
PHP索引数组可以存储数字,字符串或任何对象。 PHP索引数组也称为数值数组。
定义
有两种方法来定义索引数组:
第一种方式:
$size=array("Big","Medium","Short");
第二种方式:
$size[0]="Big";
$size[1]="Medium";
$size[2]="Short";
PHP索引数组示例
文件:array1.php
<?php
$size=array("Big","Medium","Short");
echo "Size: $size[0], $size[1] and $size[2]";
?>
上面代码执行结果如下 -
Size: Big, Medium and Short
文件: array2.php
<?php
$size[0]="Big";
$size[1]="Medium";
$size[2]="Short";
echo "Size: $size[0], $size[1] and $size[2]";
?>
上面代码执行结果如下 -
Size: Big, Medium and Short
遍历PHP索引数组
我们可以使用foreach循环在PHP中来遍历数组。 下面来看看一个简单遍历PHP数组的所有元素的例子。
文件:array3.php
<?php
$size=array("Big","Medium","Short");
foreach( $size as $s )
{
echo "Size is: $s<br />";
}
?>
执行结果如下 -
Size is: Big
Size is: Medium
Size is: Short
PHP索引数组的计数长度
PHP提供count()函数来计算并返回数组的长度。
<?php
$size=array("Big","Medium","Short");
echo count($size);
?>
执行结果如下 -
3
PHP关联数组
PHP允许在PHP中使用=>符号将名称/标签与每个数组元素相关联。使用这种方式,可以很容易记住元素,因为每个元素由标号表示一个递增的数字。
定义
有两种方法来定义关联数组:
第一种方式:
$salary=array("Hema"=>"550000","Vimal"=>"250000","Ratan"=>"200000");
第二种方式:
$salary["Hema"]="550000";
$salary["Vimal"]="250000";
$salary["Ratan"]="200000";
示例
文件:arrayassociative1.php
<?php
$salary=array("Hema"=>"550000","Vimal"=>"250000","Ratan"=>"200000");
echo "Hema salary: ".$salary["Hema"]."<br/>";
echo "Vimal salary: ".$salary["Vimal"]."<br/>";
echo "Ratan salary: ".$salary["Ratan"]."<br/>";
?>
上面代码执行输出结果 -
Hema salary: 550000
Vimal salary: 250000
Ratan salary: 200000
文件:arrayassociative2.php
<?php
$salary["Maxsu"]="550000";
$salary["Vimal"]="250000";
$salary["Ratan"]="200000";
echo "Maxsu salary: ".$salary["Maxsu"]."<br/>";
echo "Vimal salary: ".$salary["Vimal"]."<br/>";
echo "Ratan salary: ".$salary["Ratan"]."<br/>";
?>
上面代码执行输出结果 -
Maxsu salary: 550000
Vimal salary: 250000
Ratan salary: 200000
遍历PHP关联数组
使用PHP的foreach循环,我们可以很容易地遍历PHP关联数组的元素。
<?php
$salary=array("Maxsu"=>"550000","Vimal"=>"250000","Ratan"=>"200000");
foreach($salary as $k => $v) {
echo "Key: ".$k." Value: ".$v."<br/>";
}
?>
上面代码执行输出结果 -
Key: Maxsu Value: 550000
Key: Vimal Value: 250000
Key: Ratan Value: 200000
PHP多维数组
PHP多维数组也称为数组数组。 它允许您将表式数据存储在数组中。 PHP多维数组可以以由行 *列表示的矩阵形式表示。
定义
$emp = array
(
array(1,"sonoo",400000),
array(2,"john",450000),
array(3,"rahul",300000)
);
PHP多维数组示例
下面来看看一个简单的PHP多维数组的例子,如下面的表格数据。 在这个例子中,显示3行和3列。
| 编号 | 姓名 | 薪水 |
|---|---|---|
| 1 | sonoo | 400000 |
| 2 | john | 450000 |
| 3 | rahul | 30000 |
文件:multiarray.php
<?php
$emp = array
(
array(1,"sonoo",400000),
array(2,"john",450000),
array(3,"rahul",300000)
);
for ($row = 0; $row < 3; $row++) {
for ($col = 0; $col < 3; $col++) {
echo $emp[$row][$col]." ";
}
echo "<br/>";
}
?>
执行输出结果如下 -
1 sonoo 400000
2 john 450000
3 rahul 300000
PHP数组函数
PHP提供了各种数组函数来访问和操作数组的元素。 下面给出了重要的PHP数组函数。
1. PHP array()函数
PHParray()函数创建并返回一个数组。 它允许您创建索引,关联和多维数组。
语法
array array ([ mixed $... ] )
示例
<?php
$season=array("summer","winter","spring","autumn");
echo "Season are: $season[0], $season[1], $season[2] and $season[3]";
?>
输出结果如下-
Season are: summer, winter, spring and autumn
2. PHP array_change_key_case()函数
PHParray_change_key_case()函数更改数组的所有键的大小写。
注意:它仅更改键的大小写。
语法:
array array_change_key_case ( array $array [, int $case = CASE_LOWER ] )
示例1
<?php
$salary=array("Maxsu"=>"550000","Vimal"=>"250000","Ratan"=>"200000");
print_r(array_change_key_case($salary,CASE_UPPER));
?>
输出结果如下 -
Array ( [SONOO] => 550000 [VIMAL] => 250000 [RATAN] => 200000 )
示例2
<?php
$salary=array("Maxsu"=>"550000","Vimal"=>"250000","Ratan"=>"200000");
print_r(array_change_key_case($salary,CASE_LOWER));
?>
输出结果如下 -
Array ( [maxsu] => 550000 [vimal] => 250000 [ratan] => 200000 )
3. PHP array_chunk()函数
PHParray_chunk()函数将数组拆分为块。通过使用array_chunk()方法,可以将数组分成许多部分。
语法:
array array_chunk ( array $array , int $size [, bool $preserve_keys = false ] )
实例
<?php
$salary=array("Maxsu"=>"550000","Vimal"=>"250000","Ratan"=>"200000");
print_r(array_chunk($salary,2));
?>
输出结果如下-
Array ( [0] => Array ( [0] => 550000 [1] => 250000 ) [1] => Array ( [0] => 200000 ) )
4. PHP count()函数
PHPcount()函数计算数组中的所有元素的数量。
语法
int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] )
示例
<?php
$season=array("summer","winter","spring","autumn");
echo count($season);
?>
上面代码输出结果如下 -
4
5. PHP sort()函数
PHPsort()函数排序数组中的所有元素。
语法
bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
实例
<?php
$season=array("summer","winter","spring","autumn");
sort($season);
foreach( $season as $s )
{
echo "$s<br />";
}
?>
上面代码输出结果如下 -
autumn spring summer winter
6. PHP array_reverse()函数
PHParray_reverse()函数返回一个包含相反顺序的元素的数组。
语法
array array_reverse ( array $array [, bool $preserve_keys = false ] )
示例
<?php
$season=array("summer","winter","spring","autumn");
$reverseseason=array_reverse($season);
foreach( $reverseseason as $s )
{
echo "$s<br />";
}
?>
输出结果如下 -
autumn spring winter summer
7. PHP array_search()函数
PHParray_search()函数搜索数组中的指定值。 如果搜索成功,则返回键。
语法
mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )
示例
<?php
$season=array("summer","winter","spring","autumn");
$key=array_search("spring",$season);
echo $key;
?>
上面代码输出结果如下 -
2
8. PHP array_intersect()函数
PHParray_intersect()函数返回两个数组的交集。 换句话说,它返回两个数组的匹配元素。
语法
array array_intersect ( array $array1 , array $array2 [, array $... ] )
示例
<?php
$name1=array("maxsu","john","vivek","minsu");
$name2=array("umesh","maxsu","kartik","minsu");
$name3=array_intersect($name1,$name2);
foreach( $name3 as $n )
{
echo "$n<br />";
}
?>
上面代码输出结果如下 -
maxsu minsu
