Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从外部访问对象内的函数变量_Php_Oop - Fatal编程技术网

Php 从外部访问对象内的函数变量

Php 从外部访问对象内的函数变量,php,oop,Php,Oop,按照这种结构: class MyClass(){ var prop; function myfunc(){ $variable = 'value'; } } $obj = new MyClass; 有没有一种方法可以从外部访问“$variable”而不返回 我可以得到这样的房产: $obj -> prop; $obj -> variable; class MyClass(){ var prop; var variable;

按照这种结构:

class MyClass(){
   var prop;

   function myfunc(){
      $variable = 'value';
   }
}

$obj = new MyClass;
有没有一种方法可以从外部访问“$variable”而不返回

我可以得到这样的房产:

$obj -> prop;
$obj -> variable;
class MyClass(){
   var prop;
   var variable;    

   function myfunc(){
      $this->variable = 'value';
   }
}
但是我不能像这样访问“$variable”:

$obj -> prop;
$obj -> variable;
class MyClass(){
   var prop;
   var variable;    

   function myfunc(){
      $this->variable = 'value';
   }
}

要访问变量,请执行以下操作:

$obj -> variable;
您需要这样做:

$obj -> prop;
$obj -> variable;
class MyClass(){
   var prop;
   var variable;    

   function myfunc(){
      $this->variable = 'value';
   }
}
不建议在类内使用var。您可以使用public

$obj -> variable; now you can access this from out side the class scope

变量不存在于类中,只存在于方法中。您需要在类中声明变量。您应该使用访问说明符声明变量:protected$variable@M.I.,所以我必须把它变成一个财产?我没有办法像那样访问它?使用
var
来声明类属性已经多年没有使用了,并且找到了一个更为最新的tutorial@RiggsFolly嗯。。好的,很高兴知道,我应该使用public/private/protected吗?是的。您需要将它设置为属性才能在类中使用它,在类本身内部,您可以使用$this->variable访问它。还要检查静态变量,它可能与您正在寻找的更接近,使用静态变量,您不需要创建类的新实例与
public$变量相同。而不是我们通常想要的东西,因为它可以被每个人修改-/我同意。。到处都是语法错误。创建了一个工作副本