我已经注意到__construct有很多类。我读了一些书,上网浏览了一下,但我找不到我能理解的解释。我只是从面向对象编程开始。

我想知道是否有人能给我一个大概的概念,然后是一个简单的例子,它是如何与PHP一起使用的?


当前回答

我希望这有助于:

<?php
    // The code below creates the class
    class Person {
        // Creating some properties (variables tied to an object)
        public $isAlive = true;
        public $firstname;
        public $lastname;
        public $age;

        // Assigning the values
        public function __construct($firstname, $lastname, $age) {
          $this->firstname = $firstname;
          $this->lastname = $lastname;
          $this->age = $age;
        }

        // Creating a method (function tied to an object)
        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);

    // Printing out, what the greet method returns
    echo $me->greet(); 
    ?>

更多信息请访问codecademy.com

其他回答

它是用来声明构造函数的。

class Cat
{
    function __construct()
    {
        echo 'meow';
    }
}

每当创建类的新实例时,构造函数都会被调用,在这种情况下,构造函数将通过以下行调用:

$cat = new Cat();

在旧的PHP版本中,构造函数也可以使用类名来声明,例如:

class Cat
{
    function Cat()
    {
        echo 'meow';
    }
}

__construct方法用于在第一次创建对象时传入参数——这被称为“定义构造函数方法”,是一种常见的做法。

然而,构造函数是可选的——所以如果你不想在对象构造时传递任何参数,你就不需要它。

So:

// Create a new class, and include a __construct method
class Task {

    public $title;
    public $description;

    public function __construct($title, $description){
        $this->title = $title;
        $this->description = $description;
    }
}

// Create a new object, passing in a $title and $description
$task = new Task('Learn OOP','This is a description');

// Try it and see
var_dump($task->title, $task->description);

有关什么是构造函数的更多细节,请参阅手册。

__construct是一个在使用新对象之前初始化它的方法。 http://php.net/manual/en/language.oop5.decon.php#object.construct

注意:如果子类定义了构造函数,父构造函数不会隐式调用。为了运行父构造函数,需要在子构造函数中调用parent::__construct()。如果子类没有定义构造函数,那么它可以像普通的类方法一样从父类继承(如果它没有声明为private)。

__construct()是构造函数的方法名。构造函数在对象创建后被调用,是放置初始化代码等的好地方。

class Person {

    public function __construct() {
        // Code called for each new Person we create
    }

}

$person = new Person();

构造函数可以以正常的方式接受参数,这些参数是在创建对象时传递的。

class Person {

    public $name = '';

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

}

$person = new Person( "Joe" );
echo $person->name;

与其他一些语言(如Java)不同,PHP不支持重载构造函数(即拥有多个接受不同参数的构造函数)。您可以使用静态方法来实现此效果。

注意:我从(在撰写本文时)接受的答案的日志中检索到这个。