下面是某个类中的一段代码
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(); }
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 ("唱歌");
?>
结果:我喜欢运动
我喜欢唱歌