设置公共类变量

Cud*_*dos 13 php variables public

如何设置公共变量.它是否正确?:

class Testclass
{
  public $testvar = "default value";

  function dosomething()
  {
    echo $this->testvar;
  }
}

$Testclass = new Testclass();
$Testclass->testvar = "another value";    
$Testclass->dosomething();
Run Code Online (Sandbox Code Playgroud)

mar*_*vin 26

这是方法,但我建议为该变量编写一个getter和setter.

class Testclass

{
    private $testvar = "default value";

    public function setTestvar($testvar) { 
        $this->testvar = $testvar; 
    }
    public function getTestvar() { 
        return $this->testvar; 
    }

    function dosomething()
    {
        echo $this->getTestvar();
    }
}

$Testclass = new Testclass();

$Testclass->setTestvar("another value");

$Testclass->dosomething();
Run Code Online (Sandbox Code Playgroud)

  • 使用setter和getter,你应该将$ testvar设置为private :) (4认同)
  • 你为什么建议这个?现在是过时了还是仍然是一种好方法? (2认同)

Sri*_*ddi 5

使用构造函数。

<?php
class TestClass
{
    public $testVar = "default value";
    public function __construct($varValue)
    {
       $this->testVar = $varValue;               
    }
}    
$object = new TestClass('another value');
print $object->testVar;
?>
Run Code Online (Sandbox Code Playgroud)

  • 现在检查,我将testvar更改为testVar (2认同)

Gur*_*ogi 5

class Testclass
{
  public $testvar;

  function dosomething()
  {
    echo $this->testvar;
  }
}

$Testclass = new Testclass();
$Testclass->testvar = "another value";    
$Testclass->dosomething(); ////It will print "another value"
Run Code Online (Sandbox Code Playgroud)