Bro*_*own 3 php variables class
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();
Run Code Online (Sandbox Code Playgroud)
为什么我们没有得到first
以及如何$name
为A类设置正确的默认值变量?
我将不胜感激任何帮助.
您可以使用构造函数来设置初始值(或者几乎可以做任何事情),因为您需要这样:
class example
{
public $name;
public function __construct()
{
$this->name="first";
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以在其他函数中使用这些默认值.
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.
Run Code Online (Sandbox Code Playgroud)
您有两个选项来设置类属性的默认值:
选项1:在参数级别设置。
class A
{
public $name = "first";
public function test1()
{
echo $this->name;
}
}
$f = new A();
$f->test1();
Run Code Online (Sandbox Code Playgroud)
选项 2:每次创建新实例时都会执行魔术方法 __construct()。
class A
{
public $name;
public function __construct()
{
$this->name = 'first';
}
public function test1()
{
echo $this->name;
}
}
$f = new A();
$f->test1();
Run Code Online (Sandbox Code Playgroud)