3

PHP笔记 17 18 19 20 21

 2 years ago
source link: https://bvxie.github.io/2022/03/01/PHP%E7%AC%94%E8%AE%B0%2017%2018%2019%2020%2021/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

自定义函数

<?php
function text()
{
echo '你好!';
}
text();
注意:function后跟自定义函数。

末尾的text():为函数的调用,与前面的保持一致,同时text():放在自定义函数前,也能实现。

函数的调用需要遵守定义函数的时候写的规则,一一对应,将具体的实际参数传给定义函数时候写的形式参数;
调用函数之后执行的过程是相对独立的,互不干扰的,默认没有联系。

在这里插入图片描述
在这里插入图片描述

形式参数由零个,一个或多个变量组成。
实际参数由零个,一个或多个参数组成,每个参数是一个表达式,用逗号隔开。

<?php
function add($a,$b)//形式参数,一种形式,在这里,没有具体的值
{
echo $a+$b;
}
add(2,3);//实际参数
?>

函数返回值

是将函数执行后的结果返回给调用者,默认值如果不写返回,则函数的返回值为NULL。

<?php
function add($a,$b)
{
return $a+$b;//返回值给调用的地方,结束这个函数的运行。
}
var_dump(add(2,3));//可输出
?>

调用了add函数

<?php
function add($a,$b)
{
return $a+$b;
}
$i=add(2,3);
echo $i;
?>

PHP变量的范围

局部变量也称内部变量,是在函数内定义的,其作用域仅限于函数内部(即为{ }内),离开函数后再使用这种变量就是非法的错误的。

<?php
function add(){
$i=22;
echo $i;//有意义
}
echo $i;//无意义
add();

也叫外部变量,在函数的外部定义的,它的作用域为从变量定义处开始,到本程序,文件末尾。
但在PHP函数中无法直接使用全局变量,如需使用,必须用global声明变量。

<?php
$i=10;
function add(){
global $i;//声明$i为全局变量,然后在这个函数内部就可以使用$i;
echo $i;
}
add();

在函数内部定义变量时,使用static关键字来定义变量。

<?php
function add(){
static $i=23;//静态变量,仅在第一次调用时执行,
echo ++$i;//当第二次执行这个函数的时候,$i这个变量依旧存在
}
add();
echo'<br />';
add();
在这里插入图片描述
在这里插入图片描述

而缺少关键字

<?php
function add(){
$i=22;
echo ++$i;//有意义
}
add();
echo'<br />';
add();
在这里插入图片描述
在这里插入图片描述

参数的传递

按值传递参数

默认的,我们在传递参数的时候默认使用的就是这个方式。
对于形式参数的操作,根本不是影响到实际参数(变量)的值,两者 相当于没有联系!

<?php
function add($i){
echo ++$i;
}
$i=10;
add($i);
echo '<br />'.$i;
在这里插入图片描述
在这里插入图片描述

按引用传递参数

按引用传递参数,相当与形式参数和实际参数指的是同一个人,只是名字不一样,对于形式参数的操作会直接影响到实际的参数(变量)

<?php
function add(&$i){
echo ++$i;
}
$i=10;
add($i);
echo '<br />'.$i;
在这里插入图片描述
在这里插入图片描述

函数的默认参数

可以给形式参数设置默认值,设置方法很简单直接赋值即可!

<?php
function add($i=10){
echo ++$i;
}
add();

如果不传,按上面的值走。

在这里插入图片描述
在这里插入图片描述
<?php
function add($i=10){
echo ++$i;
}
add(20);

如果传的话,按下面的实际参数值走。

在这里插入图片描述
在这里插入图片描述

注意:形式参数加默认值,要从右往左。

<?php
function add($a=1,$i){
echo $a+$i;
}
add(,20);

会报错,要将右面的$i先赋值。才可以对于$a 进行赋值。

<?php
function add($a,$i=1){
echo $a+$i;
}
add(3,);
<?php
function add($a,$i=1){
echo $a+$i;
}
add(3);

均可的到,如图所示。

在这里插入图片描述
在这里插入图片描述

以次同理…

可变长度参数

fun_get_args();//数组类型
fun_get_arg();//括号内可加数字(从0开始),代表要输出传入的第几个实参。
多为var_dump(fun_get_arg());
func_num_args();//返回传入函数的参数个数
这三个函数可以使用在我们的定义函数内部,能够返回给我们一些关于参数的信息。

可变函数(变量函数)

可变函数不能直接用于例如 echo,print,unset(),isset();empty(),include,require 以及类似的语言结构,

<?php
function text(){
echo '可变text';
}
$a='text';//把函数名字加上引号,赋值给变量即可,
$a(2);//text();

递归函数

在函数内部,自己调用自己,

<?php
function text($n){
echo $n.'可变';//前
if($n>0)
{
text($n-1);
}
else{
echo'<-->';
}
echo $n.'可变';//后
}
text(3);
$n 是局部变量,在分配的空间里面相互独立,没有关联。
在这里插入图片描述
在这里插入图片描述

当先输入3执行完后键入判断,判断要求用test(),函数test()没有执行完毕,后面的输出3也不会执行。

内部(内置)函数

php提供给我们许多现成的函数或者结构,我们可以在实际的开发中直接使用。
还有一些函数需要开启 特定的php扩展模块,否则在使用他们时会得到一个致命的“未定义函数”错误。

在这里插入图片描述
在这里插入图片描述

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK