如何解决 undefined variable 和 undefined 属性 警告?

How to solve undefined variable and undefined property warnings?

我在 set_name()set_age 中定义了 $name$age。 请检查 index.php:

<?php
// This part needs some fixing.
class Pet {
    public $name;
    public $age;    

    // get() and set() functions for name
    function set_name($name) {
        $this->name = $name;
    }
    function get_name() {
        return $this->$name;
    }

    // get() and set() functions for age
    function set_age($age) {
        $this->age = $age;
    }
    function get_age() {
        return $this->$name;
    }
}
.....

编辑: 此问题已修复。无需新答案!

你的方法声明是错误的。如果父项有函数的实现版本,则不需要在子项class 中声明它。但即使您愿意,正确的方法(从而覆盖父函数)也是:

void makeSound(String sound) {
        System.out.println("Hi, I make a " + sound);
    }

使用静态关键字没有多大意义。静态方法是 class 的一部分而不是创建的对象的方法。这意味着您可以像这样调用方法 Pets.makeSound(...)

您的 classes 需要构造函数并且不要在 Pet class static 中执行 makeSound 方法。试试这个:

public Cat(){
  makeSound(sound);
}

public Dog(){
  makeSound(sound);
}