如何解决 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);
}
我在 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);
}