php是否/为什么强制您使用对象构造函数
我一直在研究PHP中的对象。我所看到的所有示例甚至在它们自己的对象上都使用对象构造函数。PHP是否强迫您这样做?如果是,为什么 例如:php是否/为什么强制您使用对象构造函数,php,oop,object,server,Php,Oop,Object,Server,我一直在研究PHP中的对象。我所看到的所有示例甚至在它们自己的对象上都使用对象构造函数。PHP是否强迫您这样做?如果是,为什么 例如: <?php class Person { public $isAlive = true; public $firstname; public $lastname; public $age; public function __construct($firstname, $lastname, $age) {
<?php
class Person {
public $isAlive = true;
public $firstname;
public $lastname;
public $age;
public function __construct($firstname, $lastname, $age) {
$this->firstname = $firstname;
$this->lastname = $lastname;
$this->age = $age;
}
public function greet() {
return "Hello, my name is " . $this->firstname . " " . $this->lastname . ". Nice to meet you! :-)";
}
}
// Creating a new person called "boring 12345", who is 12345 years old ;-)
$me = new Person('boring', '12345', 12345);
echo $me->greet();
?>
您将\u construct()
函数与实例化类/对象的方式错误地关联
您不必使用\uu construct()
函数(它是可选的)。但是,在使用类的方法之前,必须先创建它的实例
<?php
class Person {
public $isAlive = true;
public $firstname;
public $lastname;
public $age;
}
$person = new Person(); //Add this line
$person->firstname = "John";
echo $person->firstname;
?>
因为类定义就是定义
要创建类(实际对象)的实例,必须实例化它。实际上,您可以实例化同一类的许多不同对象/实例
您不必定义构造函数方法。。。。。但是您必须使用new
实例化类变量有两种方法。
1.变量应为公共静态变量,如:
class Person {
public $isAlive = true;
public static $firstname;
public $lastname;
public $age;
}
Person::$firstname = "John";
echo Person::$firstname;
二,。通过类对象访问变量
class Person {
public $isAlive = true;
public $firstname;
public $lastname;
public $age;
}
$person->firstname = "John";
echo $person->firstname;
顺便说一下,PHP至少可以自己创建对象PHP5.5。
你的代码没有崩溃。这只是一个警告:
警告:从中的空值创建默认对象…
那为什么呢?
这就是PHP处理内存的方式。在第一种情况下,static表示php已经为变量分配了内存,您可以使用它。第二种情况。通过使用NEW命令,您可以向php发出分配内存并将类加载到其中的指令。因此,在创建类之后,您可以访问var
在第三种情况下,PHP自行调用new Person,并向您发出警告。我强烈建议不要指望php的默认行为。始终以显式方式创建对象
class Person {
public $isAlive = true;
public $firstname;
public $lastname;
public $age;
}
$person->firstname = "John";
echo $person->firstname;