php 父类没有构造函数

PHP是一种面向对象语言,支持继承和可变函数,以下将分别介绍继承中父类没有构造函数和可变函数的使用方式。

PHP继承中父类没有构造函数

在PHP中,子类可以继承父类的所有属性和方法,但是当父类没有构造函数时,子类继承父类的属性后需要注意以下几点:

1. 子类构造函数不需要调用父类构造函数

由于父类没有构造函数,因此在子类中不需要显式调用父类构造函数,PHP会自动调用。

2. 子类在实例化时不需要传递参数

父类没有构造函数,因此不需要传递参数进行初始化,直接实例化即可。

下面是一个例子,展示了当父类没有构造函数时,子类的使用方式:

```php

class Father {

public $name;

public function sayHello() {

echo 'Hello, my name is '.$this->name;

}

}

class Son extends Father {

public $age;

public function sayAge() {

echo 'I am '.$this->age.' years old';

}

}

$son = new Son();

$son->name = 'Tom';

$son->age = 18;

$son->sayHello(); //输出:Hello, my name is Tom

$son->sayAge(); //输出:I am 18 years old

```

在上面的例子中,Father类没有构造函数,Son类继承了Father类,实例化Son类后,不需要调用父类构造函数也不需要传递参数,直接给属性赋值即可。

PHP可变函数的使用

在PHP中,可变函数是指函数名可以动态变化的函数。可变函数可以根据函数名的不同调用不同的函数,使用可变函数可以提高代码的灵活性和可复用性。

PHP中可变函数的使用方式:

1. 函数名被存储在一个变量中

将函数名存储在变量中,通过变量名来调用函数。

```php

function add($a, $b) {

return $a + $b;

}

$func = 'add';

echo $func(1, 2); //输出:3

```

在上面的例子中,将add函数的函数名存储在变量$func中,并通过$func变量名调用该函数。

2. 函数名被存储在一个数组中

将函数名存储在一个数组中,通过数组元素的值来调用函数。

```php

function add($a, $b) {

return $a + $b;

}

function sub($a, $b) {

return $a - $b;

}

$funcs = array('add', 'sub');

echo $funcs[0](1, 2); //输出:3

echo $funcs[1](2, 1); //输出:1

```

在上面的例子中,将add和sub函数的函数名存储在数组$funcs中,并通过数组元素的值来调用该函数。

3. 函数名被存储在一个对象的属性中

将函数名存储在一个对象的属性中,通过对象属性的值来调用函数。

```php

class Math {

public $func;

public function __construct($f) {

$this->func = $f;

}

public function calculate($a, $b) {

return call_user_func($this->func, $a, $b);

}

}

function add($a, $b) {

return $a + $b;

}

$obj = new Math('add');

echo $obj->calculate(1, 2); //输出:3

```

在上面的例子中,将add函数的函数名存储在对象Math的属性$func中,通过call_user_func函数调用该函数。

总结

继承是PHP面向对象编程的重要特性之一,可以提高代码的灵活性和可复用性,当父类没有构造函数时,子类可以直接继承父类的属性和方法,并在子类中重写父类的方法以实现定制化需求。

可变函数也是PHP面向对象编程的重要特性之一,同样可以提高代码的灵活性和可复用性,可以根据变量名、数组元素或对象属性的值来动态调用函数,使用时需要注意类型的兼容性和参数的正确传递。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(116) 打赏

评论列表 共有 0 条评论

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