欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

自定义函数这样中的形参如何理解

程序员文章站 2022-06-07 17:18:41
...
下面是某个类中的一段代码
static function start(PDO $pdo){			self::init($pdo);			session_set_save_handler(					array(__CLASS__,"open"),					array(__CLASS__,"close"),					array(__CLASS__,"read"),					array(__CLASS__,"write"),					array(__CLASS__,"destroy"),					array(__CLASS__,"gc")				);			session_start();		}

该 函数中的PDO 做为形参,对此很疑惑,因为我理解函数的作用就是传参,返回传递回来的值的结果,而这种字符串如何传呢

回复讨论(解决方案)

function start(PDO $pdo){
形参 $pdo
类型声明 PDO
即 start 方法必须传入一个基于 PDO 类的对象
如果不加类型声明(传统的做法是不加)可能需要自行检查传入的参数是否合适
但加了后,php解析器会帮你检查参数类型是否正确

function start(PDO $pdo){
形参 $pdo
类型声明 PDO
即 start 方法必须传入一个基于 PDO 类的对象
如果不加类型声明(传统的做法是不加)可能需要自行检查传入的参数是否合适
但加了后,php解析器会帮你检查参数类型是否正确
突然明白了,如果是形参要用逗号隔开才行,而这个代码没有,感觉版主说的有理。不过我还是有点晕,这种写法很多php教程里没有呢,我查一下手册。

形参有三种:值传递,引用传递和默认参数传递三种机制。
(1)值传递
function sum ($a,$b)
{
Echo $a+$b;
}
sum(10,20); //开始调用该函数
?>
(2)引用传递

$myNum=100;
function Valuechange ($number)
{
$number=$number+1;
Echo $number . "
";
}
Valuechange( &$myNum);
Echo $myNum;
?>
结果:101,101
(3)默认参数传递
function hobby($style = "运动")
{
return "我喜欢 $style
";
}
echo hobby ();
echo hobby ("唱歌");
?>
结果:我喜欢运动
我喜欢唱歌