<?php
//just an example of what would the world look like without constructors?
class Person{
public $name;
public $sex;
/*
//commented out
you require those params
public function __construct($name, $sex){
//you set the PROPERTIES, so you can access them later, e.g. in the 'isWoman' function
$this->name = $name;
$this->sex = $sex;
}
*/
//here we use those properties
public function isWoman(){
if($this->sex === 'woman'){
return true;
}
return false;
}
}
function construct_person($obj, $name, $sex){
$obj->name = $name;
$obj->sex = $sex;
}
$p1 = new Person();
//THIS is simply what was done for use before, when we had the 'construct' method. The 'new' above
//not only created a new object of Person (put it into memory), but also called the 'construct' method.
//since, for this example, we removed the 'construct' method, we need to do call another function MANUALLY.
construct_person($p1,'John', 'man');
$p2 = new Person();
construct_person($p2, 'Mary', 'woman');
var_dump($p1,$p2);
if($p2->isWoman()){
echo "p2 is a woman!";
};
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
object(Person)#1 (2) {
["name"]=>
string(4) "John"
["sex"]=>
string(3) "man"
}
object(Person)#2 (2) {
["name"]=>
string(4) "Mary"
["sex"]=>
string(5) "woman"
}
p2 is a woman!