首先缺少一个函数名,我myFunction在下面使用。
然后你应该检查产品是否是一个对象:
public function myFunction ($product){
if (is_object($product)) {
...
} else {
# catch the error / fault
}
}
然后你必须考虑这getParam可能是一个函数并且没有公共属性/变量,所以你必须这样写:
public function myFunction ($product){
if (is_object($product)) {
echo $product->getParam();
} else {
# catch the error / fault
}
}
此外,该函数getParam可能需要一个参数来决定返回什么,那么该函数看起来像这样:
public function myFunction ($product){
if (is_object($product)) {
echo $product->getParam($param);
} else {
# catch the error / fault
}
}
现在您的问题是,新变量param未定义(至少未在本地上下文中),您必须输入一个对象属性(使用 $this->param)或$param像这样在本地定义:
public function myFunction ($product){
if (is_object($product)) {
$param = 'color';
echo $product->getParam($param);
} else {
# catch the error / fault
}
}
一种替代方法是使用返回标量(字符串值或数字)而不是getParam()另一个 getter,即喜欢getColor()并且您不需要 aparam来调用它:
public function myFunction ($product){
if (is_object($product)) {
echo $product->getColor();
} else {
# catch the error / fault
}
}
因此,总而言之,您几乎把所有可能做错的事情都做错了。但我认为这是一个很好的演练,展示不同的细节。