首页 >后端开发 >php教程 >自定义函数这样中的形参如何理解

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

WBOY
WBOY原创
2016-06-23 14:39:51979浏览

下面是某个类中的一段代码

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 ("唱歌");
?>
结果:我喜欢运动
      我喜欢唱歌

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn