繁体   English   中英

在oop php中的var内部的var

[英]var inside var in oop php

我只是面向对象编程中的一个重要人物,目前正在学习面向对象的php,我对在类内部的变量中包含变量有些困惑,通常我会做类似的事情:

$div_content="some content";
$div = '<div>'.$div_content.'</div>';

但是当尝试这样做时,我得到一个错误:

class SomeClass{

private $div_content ="some content";
public $div='<div>'.$div_content.'</div>';

function __construct(){

echo $this->div;

}

}

有人可以帮我了解我在这里做错了什么吗? 提前致谢。

 function __construct(){
  $this->div = '<div>'.$this->div_content.'</div>';
  echo $this->div;
 }

您只能在声明中定义静态值,请使用__construct()

在类似的类上定义属性时,只能使用一个特定的值。 不能进行任何计算或运算。 例如,您不能有public $five = 2+3; ,它将无法正常工作。

相反,您可以在函数的构造函数中定义这些属性。

您应该研究getter和setter方法。 您只想得到一些东西,所以对$div使用getter方法,称为getDiv

class SomeClass{
  private $div_content = "some content";

  public function getDiv() {
    return '<div>'.$this->div_content.'</div>';
  }

  function __construct(){
    echo $this->getDiv();
  }
}

变量在类中的处理方式略有不同-像您或maja那样的结构-如果可行的话-必然会导致“问题”

尝试这样的事情,而不是:

class SomeClass{ 

private $div_content; 
public $div; 

function __construct($content){ 

$this->div_content = $content; 
$this->makeDiv(); 

}

function makeDiv(){

echo "<div>".$this->div_content."</div>"; 

}
} 

当然,有很多方法可以实现,但是我建议您不要在一开始就定义变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM