我敢打赌,这对你来说非常简单,但它仍然令我感到困惑,我想在继续学习更高级的东西之前先理解这一点。所以我希望你能为我说清楚。
代码如下:
class example
{
public function NumberInput($number)
{
$this->number = $number;
}
public function NumberOutput()
{
return $this->number;
}
}
$b = new example;
$b->NumberInput(7);
echo $b->NumberOutput();
因此代码工作正常,但我不明白这部分究竟是如何工作的:
public function NumberInput($number)
{
$this->number = $number;
}
如果我想输入一些数字,但是我不想将它保存在另一个变量中,例如变量$ a。这不起作用(我不知道为什么):
public function NumberInput($number)
{
$this->number = $a;
}
对此有何解释?
提前致谢。
答案 0 :(得分:0)
NumberInput接受一个参数($ number)并将其分配给对象的属性。
在您的示例中,$ b是对象示例的实例。 Object $ b(和类示例)有两个方法NumberInput和NumberOutput,它们作用于属性$ number。
当您使用数字调用NumberInput时,它会通过参数$ number为传递的值指定属性$ number。
$ this-> number = $ a无效,因为$ a未定义且未作为参数传入。
答案 1 :(得分:0)
class example{
public function NumberInput($number){
// this line takes the function parameter $number
// and creates a property of this object on the fly
// ALSO called number ( $this->number )
$this->number = $number;
}
public function NumberOutput(){
// this returns the value in the property
// of this object called number
return $this->number;
}
}
$b = new example;
$b->NumberInput(7);
echo $b->NumberOutput();
这样写得更好
class example{
// this is the number property defined
// rather than being created on the fly in NumberInput
// defined as private as you have a GETTER function that
// users of the class shoudl use to see its value so it sort of
// implies it should not be available as a public property
private $number;
public function NumberInput($number){
// move parameter $number value to my property called number
$this->number = $number;
}
public function NumberOutput(){
// this returns the value in the property
// of this object called number
return $this->number;
}
}
$b = new example;
$b->NumberInput(7);
echo $b->NumberOutput();
这不起作用
public function NumberInput($number)
{
$this->number = $a;
}
因为定义了$ a,它不存在
但你可以这样做
public function NumberInput($a)
{
$this->number = $a;
}
或
public function NumberInput($number)
{
$this->a = $number;
}
答案 2 :(得分:0)
我建议遵循一些标准的(几乎普遍使用的)面向对象的代码约定,它们将使您的代码更具可读性,并且应该让您更清楚它是如何工作的:
使用这些约定,这里是一个类似于你的示例类,它可以取一个数值并将其保存在不同的成员变量中::
class Example
{
private $id;
private $age;
private $numChildren
public function setId($number)
{
$this->id = $number;
}
public function getId()
{
return $this->id;
}
public function setAge($number)
{
$this->age = $number;
}
public function getAge()
{
return $this->age;
}
public function setNumChildren($number)
{
$this->numChildren = $number;
}
public function getNumChildren()
{
return $this->numChildren;
}
}
注意 - 注意我实际上并不主张使用$ number作为setter方法的参数名称,但我已经用它来说明如何将数字保存到类的不同成员变量中。 / p>