我是非常新的php,所以请原谅我的代码,如果你认为它是一团糟但我一直在努力解决这个问题几个小时。
我正在尝试使用getter和setter方法从类中提取功能,然后使用数组根据类创建新对象。 $_GET
是从HTML表单中获取输入foodNumber
,该表单确定选择数组中的哪个位置。因此,如果在表单上输入0,则表示Salad
,如果在表单上输入2,则表示Vegetables
。
所以在我看来,$foodObject
正在从class FoodArray
创建一个新对象。我试图让对象在一个数组中,所以在这种情况下$foodArray
。但是我不知道如何使用类函数的getter setter方法或者如何调用它们来通过数组输入值。
提前谢谢!
<?php
class FoodArray {
private $foodValue;
public function setFoodValue($x){
$this->foodValue=$x;
}
public function getFoodValue(){
return $this->foodValue;
}
}
$foodNumber = $_GET['foodNumber'];
$foodObject = new FoodArray;
$foodArray = array ("Salad", "Vegetables", "Pasta", "Pizza", "Burgers");
$foodArray=$foodObject->getFoodValue();
echo "The number you chose is ". $foodNumber;
echo "The food item you choose is".$foodArray[$foodNumber];
?>
///// HTML FORM /////
<html>
<body>
<form action="class_with_getter_and_setter.php" method="get">
<b>Choose a number between 0-4 and get a mystery food!</b>
<input type="text" name="foodNumber">
<input type="submit">
</form>
</body>
</html>
答案 0 :(得分:1)
我不完全确定你的最终目的是什么,但我可以试着指出你出错的几个地方:
setFoodValue()
对象的FoodArray
方法,因此$foodValue
没有值$foodArray
设置为数组,但在您拨打专线$foodObject->getFoodValue()
$foodObject->getFoodValue()
实际上没有返回任何内容,因为$foodValue
从未设置如果您传递的数组或字符串可以传递它们并以相同的方式检索它们,那么getter和setter应该没有区别。
再次不确定你想要完成什么,但你可以尝试这样的事情:
$foodObject = new FoodArray;
$foodArray = array ("Salad", "Vegetables", "Pasta", "Pizza", "Burgers");
$foodObject->setFoodValue($foodArray);
$foodObjectArray = $foodObject->getFoodValue();
echo "The number you chose is ". $foodNumber;
echo "The food item you choose is".$foodObjectArray[$foodNumber];
答案 1 :(得分:0)
如果问题是echo "The food item you choose is".$foodArray[$foodnumber];
没有产生您期望的结果,则存在两个潜在问题:
$foodObject
的意图。但是,$foodArray=$foodObject->getFoodValue();
可能会弄乱它,除非内部$foodValue
属性是(例如)您使用沙拉,蔬菜等声明的$foodArray
。$foodArray[$foodnumber]
时,&#39; n&#39;数字是小写的,上面设置$foodNumber
(资本&#39; N&#39;)