首页 > 试题广场 >

假如有个类Person,实例化(new)一个对象$p,那么如

[单选题]
假如有个类Person,实例化(new)一个对象$p,那么如何使用对象$p调用Person类中的getInfo方法?( )
  • $p=>getInfo();
  • $this->getInfo();
  • $p->getInfo();
  • $p::getInfo();
public:公有属性或方法
在子类中可以通过self::var 或self::method来调用
可以通过parent::method来调用父类中的方法,但不能调用共有属性
在实例中可通过$obj->var或self::method来调用


protected:受保护类型
在子类中可通过self::var 或self::method调用,可通过parent::method来调用父类中的方法
在实例中不能通过$obj->var来调用protected类型的方法或属性

private:私有类型
该类型的属性或方法只能在该类中是用,在该类的实例,子类及子类的实例中均不能调用私有的属性和方法

public 表示全局,类内部外部子类都可以访问;
private表示私有的,只有本类内部可以使用;
protected表示受保护的,只有本类的子类或父类中可以访问;



self和parent的区别
a)在子类中常用到这两个对象。其区别在于  self可调用父类中的public 或 protected 的属性,但 parent不可以
b)self:: 表示当前类的静态成员(方法和属性)
   $this指当前对象


final标志的成员属性,不能在子类中再次定义
发表于 2016-11-16 11:39:51 回复(0)
哪位大神可以解释一下 ->和::的区别
发表于 2016-04-11 11:07:53 回复(6)

在php中,对用对象属性(非静态)和方法(非静态)都是new出来之后用“ -> ”这个符合访问,不像其他语言,直接new之后用“ . ”来访问

访问静态的话用“ :: ”这个符号访问。

发表于 2019-10-16 22:08:07 回复(0)
如果是静态方法d也可以吧
发表于 2016-01-06 13:48:20 回复(1)
c
发表于 2015-04-11 23:43:47 回复(0)