Create class properties in previous versions of PHP
We now have value passed to constructor, but a var_dump
won’t really be doing anything for us. We need to assign this value to a variable. In classes, you do this with something called a class property.
You can think of classes as representing a specific entity, and properties represent values related to that entity. Just like in this example, the Author is an entity, and the author name would be a good property. We can also have other properties like gender, age, location, & so on.
This lesson covers class properties in versions of PHP before 8. I included it first though because it will help you understand how scope & properties work within classes.
You create a class property by using a scope keyword right at the start of a class. We will get into scopes in a later lesson, but for now we will just use the public
scope. Next comes the name of the property, and this will be a variable name. So lets name this $name
.
<?php declare(strict_types=1); class Author { public $name; ...
Next, we will update our constructor to assign it to this property. First we will use the $this
keyword. This keyword references the class you are within. So $this
is the specific instance of this Author
class. Next, we will use an arrow with a property name, to reference the specific class property. Finally, we can just set this value equal to the argument name.
<?php declare(strict_types=1); class Author { public $name; public function __construct($name) { $this->name = $name; } }
It’s always a good idea to also cast your class properties to a specific type. You can do this right after the scope keyword. So right after public
, lets cast this $name
property to a string
.
<?php declare(strict_types=1); class Author { public string $name; ...
You can define as many properties like this as you wish.