php 类调用本身方法,PHP 类中方法的声明与调用

本文介绍了方法与函数的相似性和不同点,方法主要用于定义类的行为,而函数是独立的代码块。方法调用需要指定对象,如`$object->method_name()`。类的方法本质上是函数,存储在`zend_function`结构体中。文章举例说明了如何定义和调用方法,包括使用`$this`关键字访问类的属性,并指出方法可以接收参数,就像函数一样。
摘要由CSDN通过智能技术生成

方法(method)与函数非常类似,只不过方法是用来定义类的行为的。

与函数一样,方法可以接受输入参数,可以向调用者返回一个值。

方法的调用也与函数相同,只是在方法签名要加上调用方法的对象的名称,如下所示:

$object->method_name();

方法声明

可以使用与函数相同的语法创建方法。方法和一般函数之间唯一的区别是方法声明前面一般会有作用域描述符。一般语法如下:

scope function functionName()

{

//function body goes here

}

类的成员方法从本质上来讲也是一种函数,所以其存储结构也和常规函数一样,存储在zend_function结构体中。

对于一个类的多个成员方法,它是以HashTable的数据结构存储了多个zend_function结构体。

和前面的成员变量一样,在类声明时成员方法也通过调用zend_initialize_class_data方法,初始化了整个方法列表所在的HashTable。

在类中我们如果要定义一个成员方法,格式如下:

class NowaMagic {

public function show() {

echo 'Hello NowaMagic';

}

}

比如,名为calculateSalary()的公共方法如下:

public function calculateSalary()

{

return $this->wage*$this->hours;

}

在此例中,该方法通过使用 $this 关键字直接调用了类的两个字段:wage 和hours 。通过将两个字段的值相乘,计算工资,然后像函数一样返回结果。

但是注意,方法并不只限于操作类的字段,完全可以像函数一样向方法传递参数。

而对于公共方法,可以不显式地声明作用域,而是像声明函数(不带作用域声明)一样声明方法。

方法调用

调用方法与调用函数几乎相同。还是看前面的例子,可以如下调用calculatesalary()方法:

$employee = new Employee("Gonn");

$salary = $eoployee->calculatesalary();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值