PHP如何将默认值设置为类中的变量?

PHP如何将默认值设置为类中的变量?,php,class,variables,Php,Class,Variables,为什么我们不先获得以及如何仅为A类设置正确的默认值变量$name 如果有任何帮助,我将不胜感激。您可以使用构造函数来设置初始值(或者几乎可以为此执行任何操作),因为您需要这样做: class A{ public $name; public function __construct() { $this->name = 'first'; } public function test1(){ if(!empty($_POST["na

为什么我们不先获得
以及如何仅为A类设置正确的默认值变量
$name


如果有任何帮助,我将不胜感激。

您可以使用构造函数来设置初始值(或者几乎可以为此执行任何操作),因为您需要这样做:

class A{
    public $name;

    public function __construct() {
      $this->name = 'first';
    }

    public function test1(){
        if(!empty($_POST["name"]))
        {
            $name = 'second';
        }
        echo $name;
    }

$f = new A;
$f->test1();
然后可以在其他函数中使用这些默认值

class example
{

    public $name;

    public function __construct()
    {
        $this->name="first";
    }

}
使用
isset()
为可能已经有值的变量指定默认值:

class example
{

    public $name;

    public function __construct()
    {
        $this->name="first";
    }

    public function test1($inputName)
    {
        if(!empty($inputName))
        {
            $this->name=$inputName;
        }
        echo "The name is ".$this->name."\r\n";
    }

}

$ex=new example();
$ex->test1(" "); // prints first.
$ex->test1("Bobby"); // prints Bobby
$ex->test1($_POST["name"]); // works as you expected it to.
使用三元
(a?b:c)
运算符给出新变量a(可能是默认值):


有两个选项可以设置类属性的默认值:

选项1:在参数级别设置

$cars = isset($_GET['cars']) ? $_GET['cars'] : $default_cars;
选项2:每次创建新实例时,都会执行神奇的方法_construct()

class A 
{
    public $name = "first";

    public function test1()
    {
        echo $this->name;
    }
}

$f = new A();
$f->test1();

$this->name
$name
是两个不同的变量…@deceze我知道,但是在类中如何设置打印
$name
的变量的默认值是
第一个
?如果使
public$name$这个->name='first'
不会首先打印
。我是说您需要在
test1()
函数中使用
$this->name
而不是
$name
。另一部分很好,你可以恢复到你的初始版本。@deceze好的,我理解你,我理解这是如何工作的。谢谢这并不能回答原来的问题。请再看一下这个问题。无论如何,如果问题不一样,那将是一个很好的答案
class A 
{
    public $name = "first";

    public function test1()
    {
        echo $this->name;
    }
}

$f = new A();
$f->test1();
class A 
{
    public $name;

    public function __construct() 
    {
        $this->name = 'first';
    }

    public function test1()
    {
        echo $this->name;
    }
}

$f = new A();
$f->test1();