如何在php中访问构造函数外部的成员变量
我在课堂上做了以下示例如何在php中访问构造函数外部的成员变量,php,class,constructor,Php,Class,Constructor,我在课堂上做了以下示例 class a{ function __construct(){ $a =10; $b=9; } } $z=new a(); 我想知道如何使用对象(或通过其他方式)访问$a和$b以执行单个$a+b加法。我知道这可以使用超级全局数组来完成,但我想知道是否还有其他方法可以完成这项工作,而不是将它们声明为全局 我知道这段代码没有多大意义,但出于示例目的执行它将这些变量改为属性: class a { public $a; pub
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
类,而不是任何实际使用它的代码。将这些变量改为属性:
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
类,而不是任何实际使用它的代码。在您的示例中,函数中有两个局部变量。您应该创建类字段以通过对象访问它们:
class a {
public $a;
public $b;
function __construct() {
$this->a = 10;
$this->b = 9;
}
}
$z=新的a()
echo$z->a强>
echo$z->b在您的示例中,函数中有两个局部变量。您应该创建类字段以通过对象访问它们:
class a {
public $a;
public $b;
function __construct() {
$this->a = 10;
$this->b = 9;
}
}
$z=新的a()
echo$z->a强>
echo$z->b您无法在CUNstruct中返回,或者即使您执行了以下操作:
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;
}
?>
这取决于您的应用程序体系结构或您可能拥有或想要施加的限制您不能在CUNstruct中返回,或者即使您执行了以下操作:
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;
}
?>
这取决于您的应用程序体系结构或您可能拥有或想要施加的限制。按名称构造函数用于对象使用前可能需要的任何初始化。所以如果你按你现在的方式做
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
这里的构造函数将在实例化对象时执行变量的初始化工作。按名称构造函数用于对象使用前可能需要的任何初始化。所以如果你按你现在的方式做
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
当您实例化对象时,这里的构造函数将完成变量的初始化工作。如果您想直接访问它们,不应该将属性设置为私有。。。将它们公开,而不是直接访问它们,您不应该将属性设置为私有。。。让他们公开,我知道函数是可以实现的,但我想通过构造函数来实现。实验你为什么要这么做?如果您想将一个新变量“d”设置为a和B的和,并访问它或编写一个函数来检索它。我知道可以生成函数,但希望通过构造函数来实现。实验你为什么要这么做?如果要将新变量“d”设置为a和B的和,并访问它或编写函数来检索它。