自定义函数这样中的形参如何理解
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 ("唱歌");
?>
结果:我喜欢运动
我喜欢唱歌
推荐阅读
-
python中修改形参对实参的影响,如何避免形参对实参的影响
-
Python中的函数(定义、调用、形参、实参、必选参数、默认参数、可变参数,关键字参数)
-
C语言编程题--函数fun的功能是:找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。
-
PHP中调用别的文件的include函数,要如何传参?
-
自定义函数这样中的形参如何理解
-
关于函数中定义形参但没有传递实参的实例教程
-
PHP 中的自定义函数如何实现带 @时不抛出错误?
-
如何理解javascript中的类型、传参和执行环境
-
ci框架如何通过$this->load->library向自定义的类中的构造函数传参?
-
如何自定义sort函数中的比较函数