diff --git a/01-classes.php b/01-classes.php
deleted file mode 100644
index 338cccf..0000000
--- a/01-classes.php
+++ /dev/null
@@ -1,21 +0,0 @@
-";
-var_dump($oldMobile);
diff --git a/02-properties.php b/02-properties.php
deleted file mode 100644
index 010aad5..0000000
--- a/02-properties.php
+++ /dev/null
@@ -1,50 +0,0 @@
- ) for accessing properties
-
-// we can assign those public properties in our class with this syntax
-$modernMobile->name = "Samsung s20";
-$modernMobile->chipset = "Exynos";
-$modernMobile->internalMemory = 128;
-
-echo "
";
-
-// we can also access properties value by the arrow operator
-echo $modernMobile->chipset;
-
-// what happens if we assign a non existing value or a wrong value?
-$modernMobile->ramMemory = 1;
-$modernMobile->internMemory = 8;
-
-echo "
";
-var_dump($modernMobile);
-echo "
";
-
-echo "
";
-
-//-----------------------------------------------------
-// arrow operator is unique in objects and must not be
-// confused with double arrow operator used in arrays
-//-----------------------------------------------------
-
-// this is an example using an array and double arrow operators
-$mobileArray = [
- 'name' => 'Xiaomi Mi10',
- 'chipset' => 'Snapdragon',
- 'internalMemory' => 64
-];
-echo $mobileArray['chipset'];
\ No newline at end of file
diff --git a/03-methods.php b/03-methods.php
deleted file mode 100644
index bf92984..0000000
--- a/03-methods.php
+++ /dev/null
@@ -1,28 +0,0 @@
-name . " includes a " . $this->chipset . " chipset and " . $this->internalMemory . "GB of internal memory";
- }
-}
-
-
-$modernMobile = new Mobile();
-$modernMobile->name = "Samsung s20";
-$modernMobile->chipset = "Exynos";
-$modernMobile->internalMemory = 128;
-
-echo $modernMobile->showSpecs();
diff --git a/04-getters.php b/04-getters.php
deleted file mode 100644
index 84cf90c..0000000
--- a/04-getters.php
+++ /dev/null
@@ -1,61 +0,0 @@
-name . " ---";
- }
-
- public function getChipset()
- {
- return $this->chipset;
- }
-
- public function getInternalMemory()
- {
- return $this->internalMemory;
- }
-}
-
-
-$modernMobile = new Mobile();
-$modernMobile->name = "Samsung s20";
-$modernMobile->chipset = "Exynos";
-$modernMobile->internalMemory = 128;
-
-echo "--- GETTERS ---";
-echo "
";
-echo $modernMobile->getName();
-echo "
";
-echo $modernMobile->getChipset();
-echo "
";
-echo $modernMobile->getInternalMemory();
-
-
-//-----------------------------------------------------
-// with this scenario where all properties are public
-// there won't be any differences between using getters
-// or accessing the properties via arrow operator
-//-----------------------------------------------------
-
-echo "
";
-echo "--- ARROW OPERATOR ---";
-echo "
";
-
-echo $modernMobile->name;
-echo "
";
-echo $modernMobile->chipset;
-echo "
";
-echo $modernMobile->internalMemory;
diff --git a/05-setters.php b/05-setters.php
deleted file mode 100644
index e86c9b6..0000000
--- a/05-setters.php
+++ /dev/null
@@ -1,42 +0,0 @@
-internalMemory;
- }
-
- // setters are methods for changing properties
- public function setInternalMemory($internalMemory)
- {
- echo "* CHANGED internal memory from " . $this->internalMemory;
- $this->internalMemory = $internalMemory;
- echo " to " . $this->internalMemory;
- }
-}
-
-echo "
";
-
-$modernMobile = new Mobile();
-$modernMobile->name = "Samsung s20";
-$modernMobile->chipset = "Exynos";
-$modernMobile->internalMemory = 128;
-
-
-echo "
";
-echo $modernMobile->getInternalMemory();
-echo "
";
-$modernMobile->setInternalMemory(256);
-echo "
";
-echo $modernMobile->getInternalMemory();
diff --git a/06-constructors.php b/06-constructors.php
deleted file mode 100644
index 59831d5..0000000
--- a/06-constructors.php
+++ /dev/null
@@ -1,34 +0,0 @@
-name = $name;
- $this->chipset = $chipset;
- $this->internalMemory = $internalMemory;
- echo "+ " . $this->name . " CREATED +
";
- }
-
- // PHP will call __destruct at the end of the script, when the object is destructed or the script is stopped or exited.
- function __destruct()
- {
- echo "- DESTROYED : " . $this->name . " includes a " . $this->chipset . " chipset and " . $this->internalMemory . "GB of internal memory -
";
- }
-}
-
-// Now we can instantiate a mobile object passing arguments in the correct order
-$modernMobile = new Mobile('Samsung s20', 'Exynos', 128);
-$oldMobile = new Mobile('BlackBerry', 'ARM', 1);
-echo "
";
diff --git a/07-inheritance-problem.php b/07-inheritance-problem.php
deleted file mode 100644
index 53c6971..0000000
--- a/07-inheritance-problem.php
+++ /dev/null
@@ -1,67 +0,0 @@
-name = $name;
- $this->chipset = $chipset;
- $this->internalMemory = $internalMemory;
- echo "+ " . $this->name . " CREATED +
";
- }
-
- function __destruct()
- {
- echo "- DESTROYED : " . $this->name . " includes a " . $this->chipset . " chipset and " . $this->internalMemory . "GB of internal memory -
";
- }
-}
-
-// We need a class for mobiles with extra properties and methods that won't have every mobile
-// For example we could need a class for a mobile device with physical keyboard so we create a new one
-
-class Blackberry
-{
- public $name;
- public $chipset;
- public $internalMemory;
- public $keyboard;
-
-
- public function __construct($name, $chipset, $internalMemory, $keyboard)
- {
- $this->name = $name;
- $this->chipset = $chipset;
- $this->internalMemory = $internalMemory;
- $this->keyboard = $keyboard;
- echo "+ " . $this->name . " CREATED +
";
- }
-
- //new method for getting keyboard type
- public function getKeyboard()
- {
- return $this->keyboard;
- }
-
- function __destruct()
- {
- echo "- DESTROYED : " . $this->name . " includes a " . $this->chipset . " chipset and " . $this->internalMemory . "GB of internal memory. It uses " . $this->keyboard . " Keyboard -
";
- }
-}
-
-$samsung = new Samsung('Samsung s20', 'Exynos', 128);
-$blackberry = new BlackBerry('BlackBerry', 'ARM', 1, 'qwerty');
-echo "
";
-
-// Seems that we are repeating too much code...
\ No newline at end of file
diff --git a/08-inheritance-solution.php b/08-inheritance-solution.php
deleted file mode 100644
index 6fe6b51..0000000
--- a/08-inheritance-solution.php
+++ /dev/null
@@ -1,70 +0,0 @@
-name = $name;
- $this->chipset = $chipset;
- $this->internalMemory = $internalMemory;
- }
-
- public function getName()
- {
- return $this->name;
- }
-
- public function getChipset()
- {
- return $this->chipset;
- }
-
- public function getInternalMemory()
- {
- return $this->internalMemory;
- }
-
- public function getMobileDetails()
- {
- return "Name: $this->name, Chipset: $this->chipset, Internal Memory: $this->internalMemory";
- }
-}
-
-// When you extend a class, the subclass inherits all of the public and protected methods from the parent class.
-class Blackberry extends Mobile
-{
- public $keyboard;
-
- // in php we use __construct to tell our class that this is the constructor method
- public function __construct($name, $chipset, $internalMemory, $keyboard)
- {
- // we use same constructor as father class with parent keyword and double colon
- parent::__construct($name, $chipset, $internalMemory);
- // and add new arguments necessary for the new son class
- $this->keyboard = $keyboard;
- }
-
- //new method for getting keyboard type
- public function getKeyboard()
- {
- return $this->keyboard;
- }
-}
-
-$samsung = new Mobile('Samsung s20', 'Exynos', 128);
-$blackberry = new BlackBerry('BlackBerry', 'ARM', 1, 'qwerty');
-echo $blackberry->getName();
-echo "\n";
-echo $blackberry->getMobileDetails();
diff --git a/09-public-private-protected.php b/09-public-private-protected.php
deleted file mode 100644
index abebdba..0000000
--- a/09-public-private-protected.php
+++ /dev/null
@@ -1,93 +0,0 @@
-name = $name;
- $this->chipset = $chipset;
- $this->internalMemory = $internalMemory;
- $this->imei = $imei;
- echo "+ " . $this->name . " CREATED +
";
- }
-
- // now getters methods meke more sense because we won't be able to access properties outside the class
- public function getName()
- {
- return "--- " . $this->name . " ---
";
- }
-
- public function getChipset()
- {
- return $this->chipset;
- }
-
- public function getInternalMemory()
- {
- return $this->internalMemory;
- }
-
- // protected elements can be accessed only within the class itself and inside inherited classes.
- protected function getIMEI()
- {
- return $this->imei;
- }
-}
-
-class Blackberry extends Mobile
-{
- private $keyboard;
-
- public function __construct($name, $chipset, $internalMemory, $imei, $keyboard)
- {
- parent::__construct($name, $chipset, $internalMemory, $imei);
- $this->keyboard = $keyboard;
- }
-
- // show protected imei
- public function showIMEI()
- {
- return $this->getIMEI();
- }
-}
-
-$samsung = new Mobile('Samsung s20', 'Exynos', 128, '000111222333');
-$blackberry = new BlackBerry('BlackBerry', 'ARM', 1, '99966688555', 'qwerty');
-
-//-----------------------------------------------------
-// with this scenario we can't access private or protected
-// attributes or methods via arrow operator
-//-----------------------------------------------------
-
-echo "
";
-echo $samsung->getName(); // OK | Public method accessing a public property inside the class
-echo "
";
-echo $samsung->name; // OK | Public property
-echo "
";
-echo $samsung->getChipset(); // OK | Public method accessing a protected property inside the class
-echo "
";
-echo $samsung->chipset; // ERROR | Private property so we can't access outside the class and throws: Fatal error: Uncaught Error: Cannot access privated property Mobile::$chipset
-echo "
";
-echo $samsung->getIMEI(); // ERROR | Protected method so we can't call it outside our class and throws: Fatal error: Uncaught Error: Call to protected method Mobile::getIMEI() from context
-echo "
";
-echo $samsung->imei; // ERROR | Private property so we can't access outside the class and throws: Fatal error: Uncaught Error: Cannot access private property Mobile::$imei
-echo "
";
-echo $blackberry->showIMEI(); // OK | Public method accessing a inherited protected method inside the class
-echo "
";
-echo $blackberry->getInternalMemory(); // OK | Public method accessing a inherited protected method inside the class
-echo "
";
-echo $blackberry->internalMemory; // Uncaught Error: Cannot access protected property Blackberry::$internalMemory
-echo "
";
diff --git a/10-static.php b/10-static.php
deleted file mode 100644
index 4e37e3c..0000000
--- a/10-static.php
+++ /dev/null
@@ -1,57 +0,0 @@
-name = $name;
- $this->chipset = $chipset;
- $this->internalMemory = $internalMemory;
- $this->imei = $imei;
- echo "+ CREATED " . $this->name . " WITH " . $this->internalMemory . " INTERNAL MEMORY +
";
- }
-
- public function connectMobileInternet()
- {
- // we can call static methods without instantiating directly with class name and double colon
- return $this->name . " : " . Internet::connectInternet();
- }
-}
-
-// we can acces to static properties without instanciating the class
-echo "
";
-$company = Internet::$company;
-
-echo $company;
-echo "
";
-
-
-$samsung = new Mobile('Samsung s20', 'Exynos', 128, '000111222333');
-echo $samsung->connectMobileInternet();
diff --git a/11-const.php b/11-const.php
deleted file mode 100644
index 4c250ab..0000000
--- a/11-const.php
+++ /dev/null
@@ -1,46 +0,0 @@
-name = $name;
- $this->chipset = $chipset;
- $this->internalMemory = $internalMemory;
- $this->imei = $imei;
- echo "+ CREATED " . $this->name . " WITH " . $this->internalMemory . " INTERNAL MEMORY +
";
- }
-
- // We can access constants with just name
- public function runMobileApp()
- {
- return $this->name . " RUNS " . APPNAME . " : " . Internet::connectInternet();
- }
-}
-
-$samsung = new Mobile('Samsung s20', 'Exynos', 128, '000111222333');
-echo $samsung->runMobileApp();
diff --git a/12-abstract-classes.php b/12-abstract-classes.php
deleted file mode 100644
index b1a9282..0000000
--- a/12-abstract-classes.php
+++ /dev/null
@@ -1,60 +0,0 @@
-name = $name;
- $this->chipset = $chipset;
- $this->internalMemory = $internalMemory;
- $this->imei = $imei;
- echo "+ CREATED " . $this->name . " WITH " . $this->internalMemory . " INTERNAL MEMORY +
";
- }
-
- public function runMobileApp()
- {
- return $this->name . " RUNS " . APPNAME . " : " . Internet::connectInternet();
- }
-}
-
-class Blackberry extends Mobile
-{
- public $keyboard;
-
- public function __construct($name, $chipset, $internalMemory, $imei, $keyboard)
- {
- parent::__construct($name, $chipset, $internalMemory, $imei);
- $this->keyboard = $keyboard;
- }
-}
-
-$blackberry = new BlackBerry('BlackBerry', 'ARM', 1, '99966688555', 'qwerty');
-echo $blackberry->runMobileApp();
-
-// We cannot instantiate an abstract class by itself!!
-$samsung = new Mobile('Samsung s20', 'Exynos', 128, '000111222333'); // Fatal error: Uncaught Error: Cannot instantiate abstract class Mobile
\ No newline at end of file
diff --git a/13-interfaces.php b/13-interfaces.php
deleted file mode 100644
index 0058b06..0000000
--- a/13-interfaces.php
+++ /dev/null
@@ -1,73 +0,0 @@
-username = $username;
- $this->paassword = $password;
-
- return "¡Loggin succesful with $this->username!\n";
- }
-
- public function saveData()
- {
- return "¡The user has successfully saved the information!\n";
- }
-
- public function logout()
- {
- $this->username = null;
- $this->paassword = null;
-
- return "¡The user has successfully logged out the application!\n";
- }
-
- // We can add methods not present in the interface
- public function exitApp()
- {
- echo "Clossing " . self::APPNAME . "...";
- }
-}
-
-$app = new AssemblerApp();
-
-echo $app->showSplashScreen();
-echo $app->login("XxProAssemblerxX", "123456");
-echo $app->saveData();
-echo $app->logout();
-echo $app->exitApp();
diff --git a/14-overriding.php b/14-overriding.php
deleted file mode 100644
index a61c7ff..0000000
--- a/14-overriding.php
+++ /dev/null
@@ -1,50 +0,0 @@
-name = $name;
- $this->internalMemory = $internalMemory;
- }
-
- public function getName()
- {
- return $this->name;
- }
-
- public function getInternalMemory()
- {
- return $this->internalMemory;
- }
-}
-
-// When you extend a class, the subclass inherits all of the public and protected methods from the parent class.
-class iPhonePlus extends iPhone
-{
- //Here we are overriding this method adding extra features that the previous "getName" doesn't have.
- public function getName()
- {
- return "¡The name of this iPhone is $this->name!";
- }
-}
-
-$iPhone = new iPhone("iPhone X", "64");
-echo $iPhone->getName() . "\n";
-
-$iPhonePlus = new iPhonePlus("iPhone X Plus", "128");
-echo $iPhonePlus->getName();
diff --git a/15-overloading.php b/15-overloading.php
deleted file mode 100644
index 391ea8a..0000000
--- a/15-overloading.php
+++ /dev/null
@@ -1,52 +0,0 @@
-dni = $dni;
- $this->name = $name;
- return "¡Login with short DNI!";
- }
-
- public function loginFullDNI(string $dni)
- {
- $this->dni = $dni;
- return "¡Login with full DNI!";
- }
-}
-
-$app = new App();
-echo $app->login(53123456, "Pau") . "\n";
-echo $app->login("53123456K");
diff --git a/16-namespaces.php b/16-namespaces.php
deleted file mode 100644
index fe5f942..0000000
--- a/16-namespaces.php
+++ /dev/null
@@ -1,116 +0,0 @@
-name = $name;
- $this->chipset = $chipset;
- $this->internalMemory = $internalMemory;
- $this->imei = $imei;
- echo "+ CREATED " . $this->name . " WITH " . $this->internalMemory . " INTERNAL MEMORY +
";
- }
-
- public function runAssemblerApp()
- {
- echo "
";
- AssemblerApp::showSplashScreen();
- echo "
";
- AssemblerApp::getData();
- AssemblerApp::showData();
- echo "
";
- AssemblerApp::exitApp();
- }
-
- public function runAssemblerAppLib()
- {
- // We use the namespace for calling our library methods
- Lib\AssemblerApp::showSplashScreen();
- echo "
";
- Lib\AssemblerApp::getData();
- Lib\AssemblerApp::showData();
- echo "
";
- Lib\AssemblerApp::exitApp();
- }
-}
-
-class Blackberry extends Mobile
-{
- public $keyboard;
-
- public function __construct($name, $chipset, $internalMemory, $imei, $keyboard)
- {
- parent::__construct($name, $chipset, $internalMemory, $imei);
- $this->keyboard = $keyboard;
- }
-}
-
-$blackberry = new BlackBerry('BlackBerry', 'ARM', 1, '99966688555', 'qwerty');
-echo $blackberry->runAssemblerApp();
-echo "
";
-echo $blackberry->runAssemblerAppLib();
diff --git a/InterfaceUser.php b/InterfaceUser.php
new file mode 100644
index 0000000..9ee572e
--- /dev/null
+++ b/InterfaceUser.php
@@ -0,0 +1,9 @@
+role = $role;
+ $this->country = "Private Country";
+ }
+
+ public function getRole()
+ {
+ return $this->role;
+ }
+
+ public function getName()
+ {
+ return "Name: " . role::getName();
+ }
+
+ public function getCountry()
+ {
+ return $this->country;
+ }
+
+ public function __destruct()
+ {
+ echo "
DESTR:
", role::getName();
+ }
+ }
\ No newline at end of file
diff --git a/index.php b/index.php
new file mode 100644
index 0000000..e9e75b9
--- /dev/null
+++ b/index.php
@@ -0,0 +1,16 @@
+getName()."
";
+ echo "Last Name: ".$Ynohe->getLastName()."
";
+ echo "Age: ".$Ynohe->getAge()."
";
+ echo $Ynohe->getInfo()."
";
+
+ $Berta = new Admin("Berta", "Garcia", 29, "Spain", "Female", 65054321, "Admin");
+ echo $Berta->getName()."
";
+ echo "Last Name: ".$Berta->getLastName()."
";
+ echo "Age: ".$Berta->getAge()."
";
+ echo "Country: ".$Berta->getCountry()."
";
+ echo "Role: ".$Berta->getRole()."
";
\ No newline at end of file
diff --git a/mobileLibs.php b/mobileLibs.php
deleted file mode 100644
index 3b4fa8f..0000000
--- a/mobileLibs.php
+++ /dev/null
@@ -1,51 +0,0 @@
-country = $country;
+ $this->gender = $gender;
+ $this->postCode = $post;
+ }
+
+ public function getInfo()
+ {
+ return $this->country."
".$this->gender."
".$this->post;
+ }
+
+ public function getName()
+ {
+ return $this->name;
+ }
+
+
+ public function getLastName()
+ {
+ return $this->lastName;
+ }
+
+ public function getAge()
+ {
+ return $this->age;
+ }
+
+ }
\ No newline at end of file
diff --git a/user.php b/user.php
new file mode 100644
index 0000000..0278b62
--- /dev/null
+++ b/user.php
@@ -0,0 +1,25 @@
+name = $name;
+ $this->lastName = $lastName;
+ $this->age = $age;
+ }
+
+ abstract public function getName();
+
+ abstract public function getLastName();
+
+ abstract public function getAge();
+
+ }
+?>
\ No newline at end of file