php可变参函数

PHP可变参函数

在PHP中,可变参函数(Variadic Functions)是指可以接受不定数量的参数的函数,这些参数将作为一个数组传递给函数,并且该数组可以在函数内部使用。可变参函数的语法格式为:

```

function functionName(...$args){

// function body

}

```

其中,$args是一个数组,它用于接收函数中传入的所有参数。在函数体中,我们可以使用该数组来访问所有传入的参数。

例如,下面这个函数用于计算任意数量的整数之和:

```

function sum(...$numbers){

$result = 0;

foreach($numbers as $number){

$result += $number;

}

return $result;

}

// 测试函数

echo sum(1, 2, 3, 4, 5); // 输出:15

echo sum(10, 20, 30); // 输出:60

```

在上面的代码中,我们通过在函数定义中添加...$args来定义了可变参函数sum(),然后通过foreach循环遍历$numbers数组中的所有元素,并将它们相加,从而得到了最终结果。

PHP子类的构造函数

在PHP中,子类可以通过继承父类的构造函数来获得父类中的属性和方法。需要注意的是,如果子类中定义了自己的构造函数,那么它将覆盖父类的构造函数,如果我们仍想要使用父类的构造函数,我们可以在子类中定义构造函数,并在其中调用parent::__construct()来调用父类的构造函数。

例如,下面这个示例代码中,我们定义了一个名为Person的父类,它有两个属性$name和$age,并有一个构造函数__construct()来初始化这两个属性。接着,我们又定义了一个名为Student的子类,它继承了父类Person,并且也定义了自己的构造函数__construct()。在子类的构造函数中,我们通过调用parent::__construct()来调用父类的构造函数,并在其中执行父类构造函数中的代码。

```

class Person{

protected $name;

protected $age;

public function __construct($name, $age){

$this->name = $name;

$this->age = $age;

}

public function getName(){

return $this->name;

}

public function getAge(){

return $this->age;

}

}

class Student extends Person{

private $grade;

public function __construct($name, $age, $grade){

parent::__construct($name, $age);

$this->grade = $grade;

}

public function getGrade(){

return $this->grade;

}

}

// 测试代码

$student = new Student("张三", 18, 90);

echo $student->getName(); // 输出:张三

echo $student->getAge(); // 输出:18

echo $student->getGrade(); // 输出:90

```

在上面的代码中,我们定义了一个名为Person的父类,它包含了两个属性$name和$age,并且有一个构造函数__construct()来初始化这两个属性。另外,我们还定义了两个公共方法getName()和getAge(),用于获取该实例对象的姓名和年龄属性。

接着,我们定义了一个名为Student的子类,它继承了父类Person,并且有一个自己的构造函数__construct()。在子类的构造函数中,我们首先使用parent::__construct()来调用父类的构造函数,以便初始化父类的$name和$age属性。同时,我们还定义了自己的属性$grade,用于表示该学生的成绩。最后,我们还定义了一个公共方法getGrade(),用于获取该学生的成绩属性。

最后,我们实例化了一个Student类的对象$student,并通过它的三个公共方法分别获取了该学生的姓名、年龄和成绩属性。注意,虽然我们在Student类中覆盖了父类的构造函数,但是由于我们在子类的构造函数中调用了父类的构造函数,所以我们仍然能够正常访问父类的属性和方法。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/

点赞(99) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部