EDIT: Title edited to make it more useful. Originally I had no idea that it was the use of a shared word that was causing the problem.
This is very basic but rather mysterious.
I have two classes:
class Hello
{
public function hello()
{
echo "Hello";
}
}
and
class World
{
public function world()
{
echo " World";
}
}
called by
include_once 'classes/Hello.php';
include_once 'classes/world.php';
$hi= new Hello;
$wd= new World;`
Result Hello World
I originally accidentally had hello
for the name of the class World
's method.
Result Hello
i.e. no World
.
Question 1
Why are the methods firing? I have instantiated two objects but have not requested that the method “fire”. I thought I would have to do something like:
$hi->hello();
to get an output.
Question 2
I am even more mystified that I only get Hello if both functions are called hello.
Surely
$hi= new Hello;
$wd= new World;
instantiates two completely separate objects. So how does the actual NAME of a method affect anything?
I have a long way to go but this really confused me.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…