1
0
mirror of https://github.com/restoreddev/phpapprentice.git synced 2025-03-15 20:19:39 +01:00
phpapprentice/content/14-classes-constructor.md
2019-07-13 08:48:55 -05:00

1.3 KiB

+++ title = "Classes: Constructor" description = "Construct your objects" tags = ["php", "construct", "constructor", "new"] slug = "classes-constructor" previous = "classes-visibility.html" next = "static.html" +++ Whenever you create an object in PHP, you put parentheses after the class name. In the previous examples, we always left the parentheses empty.

<?php

class Hat
{
    public $color;

    public function setColor($color)
    {
        $this->color = $color;
    }
}

$hat = new Hat();

However, you can actually pass data into the parentheses like a function. The data will be passed to a special function on the class called a constructor.

class Ballcap
{
    public $color;

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

A constructor is not required, but can make creating a new object easier. They are usually used to define the initial value of a property. Instead of writing:

$hat = new Hat();
$hat->setColor('Red');

You can write:

$ballcap = new Ballcap('Blue');

Constructors do not return values because the return value is always a new object.

class Tophat
{
    public function __construct($color)
    {
        return $color;
    }
}

$tophat now holds an instance of Tophat, not the string "Grey".

$tophat = new Tophat('Grey');