我创建了下面的例子class
class a{
function __construct(){
$a =10;
$b=9;
}
}
$z=new a();
我想知道如何使用对象(或通过其他方式)访问$a和$b来执行单个$a + $b的加法。我知道这可以使用超全局数组完成,但我想知道是否有任何其他方法来做到这一点,而不是声明它们全局。
我知道这段代码没有多大意义,但是作为一个例子
将这些变量改为属性:
class a
{
public $a;
public $b;
public function __construct() {
$this->a = 10;
$this->b = 9;
}
}
$z = new a();
echo $z->a;
更好的方法是将操作抽象为一个函数:
echo $z->addProperties();
// Inside a class
public function addProperties() {
return $this->a + $this->b;
}
之后,当您想要添加第三个属性时,您需要将其添加到其他两个属性中(甚至减去或乘以),那么您所要做的就是更改a
类,而不是实际使用它的任何代码。
按名称构造函数用于对象在使用之前可能需要的任何初始化。所以如果你这样做
function __construct(){
$a =10;
$b=9;
}
变量$a &$b的作用域仅限于__construct()函数。
你可能需要$a &$b作为类变量而不是像
这样的函数class a{
public $a;
public $b;
function __construct(){
$this->a =10;
$this->b=9;
}
}
$z=new a();
// access a & b as
$z->a ; $z->b
这里的构造函数将在实例化对象时完成变量的初始化工作。
在您的示例中,函数中有两个局部变量。您应该创建类字段,以便通过object:
访问它们。class a {
public $a;
public $b;
function __construct() {
$this->a = 10;
$this->b = 9;
}
}
$z = new a();
echo $ z ->,
echo $ z -> b;
即使返回了,也不能在构造函数中返回:
class a{
public $a;
public $b;
function __construct(){
$this->a =10;
$this->b=9;
return 19;
}
}
$b = new a();
var_dump($b);
你会得到一个a的实例,因此你有以下选择:创建一个新方法:
<?php
function add()
{
return $this->a+$this->b;
}
?>
或者生成getter =>
<?php
function getA()
{
return $this->a;
}
?>
或者将它们声明为public并访问它们:
$z->a+$z->b;
这取决于你的应用架构或者你可能有或者想要施加的限制