PHP如何给class中的一个变量设置默认值?
PHP how set default value to a variable in the 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();
为什么我们得不到 first
以及如何为 class A 设置正确的默认值变量 $name
?
如有任何帮助,我将不胜感激。
您可以根据需要使用构造函数来设置初始值(或者几乎可以做任何事情):
class example
{
public $name;
public function __construct()
{
$this->name="first";
}
}
然后您可以在其他函数中使用这些默认值。
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.
使用 isset()
将默认值分配给可能已经有值的变量:
if (! isset($cars)) {
$cars = $default_cars;
}
使用三元运算符 (a ? b : c)
给新变量一个(可能是默认的)值:
$cars = isset($_GET['cars']) ? $_GET['cars'] : $default_cars;
您有两个选项来设置 class 属性的默认值:
选项1:在参数级别设置。
class A
{
public $name = "first";
public function test1()
{
echo $this->name;
}
}
$f = new A();
$f->test1();
选项 2:魔术方法 __construct() 始终在您每次创建新实例时执行。
class A
{
public $name;
public function __construct()
{
$this->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(){
if(!empty($_POST["name"]))
{
$name = 'second';
}
echo $name;
}
$f = new A;
$f->test1();
为什么我们得不到 first
以及如何为 class A 设置正确的默认值变量 $name
?
如有任何帮助,我将不胜感激。
您可以根据需要使用构造函数来设置初始值(或者几乎可以做任何事情):
class example
{
public $name;
public function __construct()
{
$this->name="first";
}
}
然后您可以在其他函数中使用这些默认值。
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.
使用 isset()
将默认值分配给可能已经有值的变量:
if (! isset($cars)) {
$cars = $default_cars;
}
使用三元运算符 (a ? b : c)
给新变量一个(可能是默认的)值:
$cars = isset($_GET['cars']) ? $_GET['cars'] : $default_cars;
您有两个选项来设置 class 属性的默认值:
选项1:在参数级别设置。
class A
{
public $name = "first";
public function test1()
{
echo $this->name;
}
}
$f = new A();
$f->test1();
选项 2:魔术方法 __construct() 始终在您每次创建新实例时执行。
class A
{
public $name;
public function __construct()
{
$this->name = 'first';
}
public function test1()
{
echo $this->name;
}
}
$f = new A();
$f->test1();