";
echo "Task 3
";
class MotorVehicle {
private $licenseNumber;
private $make;
private $series;
public function __construct($licenseNumber, $make, $series) {
$this->licenseNumber = $licenseNumber;
$this->make = $make;
$this->series = $series;
}
public function __toString() {
return "License Number: {$this->licenseNumber}, Make: {$this->make}, Series: {$this->series}";
}
public static function compareMakes($mv1, $mv2) {
return $mv1->make === $mv2->make ? "Yes" : "No";
}
// Getters for reading the private properties (needed for recreating objects)
public function getLicenseNumber() {
return $this->licenseNumber;
}
public function getMake() {
return $this->make;
}
public function getSeries() {
return $this->series;
}
}
// Test case
$mv1 = new MotorVehicle("BGS954GP", "Toyota", "Corolla");
$mv2 = new MotorVehicle("ZFR326GP", "Volkswagen", "Polo");
echo $mv1;
echo "
";
echo $mv2;
echo "
";
echo "Are they the same make? ";
echo MotorVehicle::compareMakes($mv1, $mv2);
echo "
";
// Function to create an array of MotorVehicle objects and write to a file
function createAndWriteMotorVehiclesToFile($filename) {
$vehicles = [
new MotorVehicle("BGS954GP", "Toyota", "Corolla"),
new MotorVehicle("ZFR326GP", "Volkswagen", "Polo"),
new MotorVehicle("XYZ123GP", "Toyota", "Yaris"),
new MotorVehicle("ABC789GP", "Ford", "Fiesta"),
new MotorVehicle("LMN456GP", "Honda", "Civic")
];
$file = fopen($filename, 'w');
foreach ($vehicles as $vehicle) {
fwrite($file, $vehicle . PHP_EOL);
}
fclose($file);
}
// Function to read the content of the file and display it
function readFileAndDisplayContent($filename) {
$file = fopen($filename, 'r');
while ($line = fgets($file)) {
echo $line . "
";
}
fclose($file);
}
// Function to read the content of the file, recreate objects, and check their instances
function readAndRecreateObjects($filename) {
$file = fopen($filename, 'r');
while ($line = fgets($file)) {
$parts = explode(", ", trim($line));
$licenseNumber = explode(": ", $parts[0])[1];
$make = explode(": ", $parts[1])[1];
$series = explode(": ", $parts[2])[1];
$vehicle = new MotorVehicle($licenseNumber, $make, $series);
echo $vehicle . " " . (get_class($vehicle) === 'MotorVehicle' ? "Yes" : "No") . "
";
}
fclose($file);
}
// Filename for storage
$filename = 'motorvehicles.txt';
// Execute functions
createAndWriteMotorVehiclesToFile($filename);
readFileAndDisplayContent($filename);
readAndRecreateObjects($filename);
?>
?>