gpt4 book ai didi

php - 重写的方法被调用两次

转载 作者:可可西里 更新时间:2023-10-31 22:54:44 26 4
gpt4 key购买 nike

我有一个代码片段

<?php

abstract class Testing{
public abstract function tester();

public function testing(){
$this->tester();
}
}

class Test extends Testing{
public function tester(){
echo 'test';
}
}

$t = new Test();
$t->testing();

我应该有一个输出 test 但我得到的输出是 testtest?
为什么 tester() 被调用了两次?

引用 link to ideone

最佳答案

PHP 脚本语言不区分大小写。(但不适用于变量)

由于您的 child 类没有任何构造函数,父类构造函数被触发。

当你这样做时..

$t = new Test();

父类构造函数被触发,也就是public function testing(),(看类名是否匹配)

来自PHP Docs ..

For backwards compatibility, if PHP 5 cannot find a __construct() function for a given class, and the class did not inherit one from a parent class, it will search for the old-style constructor function, by the name of the class.

关于php - 重写的方法被调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22960495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com