实时搜索: php怎么调用方法

php怎么调用方法

338条评论 1387人喜欢 6323次阅读 837人点赞
class a{
public function m(){
echo 'aa';
}
public function run(){
$this->m();
}
}

class b extends a{
public function m(){
echo 'bb';
}
}

$...

PHP继承的问题,调用父类的方法this指向问题。:

我来说一说:


【一】…………public(仅有)属性和方法的继承…………

class a{
public $var = 'var a <br/>';
public function m(){
echo 'fun a <br/>';
}
public function run(){
echo $this->var;
$this->m();
}
}

class b extends a{
public $var = 'var b <br/>';
public function m(){
echo 'fun b <br/>';
}
}
$li = new b();
$li->run();
echo '<hr>';
var_dump($li);

输出:

var b 
fun b 
————————————————————————————
object(b)[1]
  public 'var' => string 'var b <br/>' (length=11)

在这段代码中所表示的,是我们常见的一种继承方式,同为公有属性的$var 和公有方法m()


在这里,$var和m()都被继承并覆写,实例化过后,内存中只有一个$var实例,通过var_dump($li);我们可以看到它。



【二】…………private(私有)属性和方法的继承…………

class a{
private $var = 'var a <br/>';
private function m(){
echo 'fun a <br/>';
}
public function run(){
echo $this->var;
$this->m();
var_dump($this);
echo '<br/><br/>';
}
}

class b extends a{
private $var = 'var b <br/>';
private function m(){
echo 'fun b <br/>';
}
public function run(){
echo $this->var;
$this->m();
var_dump($this);
echo '<br/><br/>';
parent::run();
}
}
$li = new b();
$li->run();
echo '<hr>';
var_dump($li);

输出:

var b 
fun b 
object(b)[1]
  private 'var' => string 'var b <br/>' (length=11)
  private 'var' (a) => string 'var a <br/>' (length=11)
.
.
var a 
fun a 
object(b)[1]
  private 'var' => string 'var b <br/>' (length=11)
  private 'var' (a) => string 'var a <br/>' (length=11)
.
————————————————————————————————
object(b)[1]
  private 'var' => string 'var b <br/>' (length=11)
  private 'var' (a) => string 'var a <br/>' (length=11)

这个时候,我们可以看到,在调用run方法时,首先它会调用到b类的私有属性$var 和私有方法m(),随后,又使用parent::run()调用父类的run()方法,我们可以看到,父类的run()方法调用后,它所调用的属性和方法,都是a类的两个私有属性和方法,这种形式,和你的问题一致;


而它与$this指向无关,我们可以在这里看到,两个$this都是指向b类。


而最有意思的是,在$li句柄中,我们却看到了两个属性!一个是b类的属性,一个是a类的属性,这两个属性同时存在着,那么,私有方法也自然是同时存在着。


【三】…………私有属性和方法能不能被继承…………

class a{
private $var = 'var a <br/>';
private function m(){
echo 'fun a <br/>';
}
}
class b extends a{
public function run(){
echo $this->var;
$this->m();
}
}
$li = new b();
$li->run();

输出:

Notice: Undefined property: b::$var in E: ... on Line 9
Fatal error: Call to private method a::m() from context 'b' in E: ... on Line 10

这可以证明,私有属性和方法,无法被继承,所以,你的代码示例中所说,将a类的m()方法更改为private后,会显示aa的属性,也就可以理解明白了。

thinkphp3.2.3怎么调用model里的方法: D方法实例化模型类的时候通常是实例化某个具体的模型类,如果你仅仅是对数据表进行基本的CURD操作的话,使用M方法实例化的话,由于不需要加载具体的模型类,所以性能会更高。所以根据自己的需要来使用,D方法实例化出来的model类,可以进行模型里面的方法调用

onclick=""等事件怎么执行php里的函数: 需要通过ajax请求PHP方法。

thinkphp中控制器怎么调用模型中自定义的方法: 比如MyModel,
$myModel = new MyModel();
$myModel->yourFunction();
就是实例化一个Model,然后该实例调用方法(yourFunction)

php在双引号中对象调用方法,会出错的原因:

最好不要直接在引号里面调用,你用单引号的话会被当成字符串,你用双引号会被当成变量解析了。最好还是用点的方式来链接,假如我要调用a对象里面的getstring方法,可以这样写。

<?php
class a{
    function getstring(){
        return '我是返回值';
    }
}
$a = new a();
echo '我是调用a对象的getstring方法获取的值:'.$a->getstring()

上面这样写就可以拼接起来了,所以不要在单引号或者双引号里面直接使用对象来调用方法

在php中 删除数据库的几条数据,用什么方法来执行sql语句?怎么查看删除是否成功?: 很多方法,一般可以用:
Delete from `TABLE` where `ID` in (1,2,3,4,5)
删除ID为1,2,3,4,5的记录。

tp5如何执行后缀为.php的模板文件,是怎么在config里设置的?tp3里方法不管用: 在配置文件中 ‘url_html_suffix’ => ‘html’, 那么模板后缀必须是html,不然模板输出的时候会格式不正确。

php getter setter怎么调用: 可以同时写,objective-c下如果某属性的getter,setter都要重写的话 需要加上@synthesize propertyName = _propertyName; 当你定义了一系列的变量时,需要写很多的getter和setter方法,而且它们的形式都是差不多的,

  • (易博)复方地龙片的主要成分有哪些呢

    NBA有许多大心脏球员,乔约翰逊能称得上是其中的代表吗?: 乔约翰逊可以说是NBA内部数一数二的大心脏球员,一向以超高的心理素质著称。乔约翰逊在老鹰的出色表现让他赢得了“鹰王”的称号,而在他的职业生涯之中,最为人所称道的就是他超强的心理素质,被称为联盟内的大心脏球员,并凭借着...

    470条评论 5544人喜欢 1878次阅读 269人点赞
  • gb是什么单位

    昆山寄东西到连云港要几天?: GMS只需2至3天。 ...

    470条评论 2411人喜欢 1270次阅读 641人点赞
  • maya保存在哪

    2015年在北京,醉驾140,无任何事故当天拘留。目前到今天是第18天。给家里的通知书是。根据刑事: 酒精含量超过80就属于醉酒驾驶,涉嫌危险驾驶罪,是要负刑事责任的,不是仅仅拘留就可以的。根据司法实践,一般危险驾驶罪没有特殊情况的话,刑期在三个月以内,但具体判多久是法院根据具体案情决定的,在宣判之前,除了法官,谁也...

    848条评论 2988人喜欢 4451次阅读 820人点赞
  • 123456能组几个三位数

    请问重庆大学城附近有哪些楼盘??: 卓越熙街 (重庆卓越房地产开发有限公司) 重大北大门正对前行300米富力城瀚湖 ( 重庆富力城房地产开发有限公司 )沙坪坝大学城(重庆师范大学对面) 龙湖睿城 (重庆龙湖地产发展有限公司) ...

    281条评论 4693人喜欢 6075次阅读 946人点赞
  • nba8号球衣是谁

    甘肃省镇原县何勤杀人怎么处理?: 杀人就按杀人的法律处理了,杀人偿命天经地义。 ...

    874条评论 5791人喜欢 5053次阅读 266人点赞
  • 18003365991是谁的电话

    适合中学生演的话剧: 《雷雨》《罗密欧与朱丽叶》《茶馆》《屈原》资料拓展:《雷雨》是剧作家曹禺创作的一部话剧,发表于1934年7月《文学季刊》。此剧以1925年前后的中国社会为背景,描写了一个带有浓厚封建色彩的资产阶级家庭的悲剧。剧中以两...

    752条评论 1281人喜欢 4207次阅读 804人点赞