<?
abstract class StudentManager {
abstract function getStudent($previousStudent);
abstract function getStudentCount();
abstract function setStudentCount($new_count);
abstract function addStudent($oneStudent);
abstract function removeStudent($oneStudent);
}
class SingleStudentClass extends StudentManager {
private $firstName;
private $lastName;
function __construct($firstName, $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
}
function getStudent($studentToGet) {
if (1 == $studentToGet) {
return $this->firstName." by ".$this->lastName;
} else {
return FALSE;
}
}
function getStudentCount() {
return 1;
}
function setStudentCount($newCount) {
return FALSE;
}
function addStudent($oneStudent) {
return FALSE;
}
function removeStudent($oneStudent) {
return FALSE;
}
}
class MultipleStudentsClass extends StudentManager {
private $oneStudents = array();
private $studentCount;
public function __construct() {
$this->setStudentCount(0);
}
public function getStudentCount() {
return $this->studentCount;
}
public function setStudentCount($newCount) {
$this->studentCount = $newCount;
}
public function getStudent($studentToGet) {
if ($studentToGet <= $this->studentCount) {
return $this->oneStudents[$studentToGet]->getStudent(1);
} else {
return FALSE;
}
}
public function addStudent($oneStudent) {
$this->setStudentCount($this->getStudentCount() + 1);
$this->oneStudents[$this->getStudentCount()] = $oneStudent;
return $this->getStudentCount();
}
public function removeStudent($oneStudent) {
$counter = 0;
while (++$counter <= $this->getStudentCount()) {
if ($oneStudent->getStudent(1) ==
$this->oneStudents[$counter]->getStudent(1)) {
for ($x = $counter; $x < $this->getStudentCount(); $x++) {
$this->oneStudents[$x] = $this->oneStudents[$x + 1];
}
$this->setStudentCount($this->getStudentCount() - 1);
}
}
return $this->getStudentCount();
}
}
$firstStudent = new SingleStudentClass("A","B");
echo $firstStudent->getStudent(1);
echo "<BR>";
$secondStudent = new SingleStudentClass("C", "D");
echo $secondStudent->getStudent(1);
echo "<BR>";
$students = new MultipleStudentsClass();
$studentsCount = $students->addStudent($firstStudent);
echo $students->getStudent($studentsCount);
echo "<BR>";
$studentsCount = $students->addStudent($secondStudent);
echo $students->getStudent($studentsCount);
echo "<BR>";
$studentsCount = $students->removeStudent($firstStudent);
echo $students->getStudentCount();
echo "<BR>";
echo $students->getStudent(1);
echo "<BR>";
?>
- Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 7.1.25 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.31, 7.4.0 - 7.4.32, 8.0.0 - 8.0.12, 8.0.14 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
- <?
abstract class StudentManager {
abstract function getStudent($previousStudent);
abstract function getStudentCount();
abstract function setStudentCount($new_count);
abstract function addStudent($oneStudent);
abstract function removeStudent($oneStudent);
}
class SingleStudentClass extends StudentManager {
private $firstName;
private $lastName;
function __construct($firstName, $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
}
function getStudent($studentToGet) {
if (1 == $studentToGet) {
return $this->firstName." by ".$this->lastName;
} else {
return FALSE;
}
}
function getStudentCount() {
return 1;
}
function setStudentCount($newCount) {
return FALSE;
}
function addStudent($oneStudent) {
return FALSE;
}
function removeStudent($oneStudent) {
return FALSE;
}
}
class MultipleStudentsClass extends StudentManager {
private $oneStudents = array();
private $studentCount;
public function __construct() {
$this->setStudentCount(0);
}
public function getStudentCount() {
return $this->studentCount;
}
public function setStudentCount($newCount) {
$this->studentCount = $newCount;
}
public function getStudent($studentToGet) {
if ($studentToGet <= $this->studentCount) {
return $this->oneStudents[$studentToGet]->getStudent(1);
} else {
return FALSE;
}
}
public function addStudent($oneStudent) {
$this->setStudentCount($this->getStudentCount() + 1);
$this->oneStudents[$this->getStudentCount()] = $oneStudent;
return $this->getStudentCount();
}
public function removeStudent($oneStudent) {
$counter = 0;
while (++$counter <= $this->getStudentCount()) {
if ($oneStudent->getStudent(1) ==
$this->oneStudents[$counter]->getStudent(1)) {
for ($x = $counter; $x < $this->getStudentCount(); $x++) {
$this->oneStudents[$x] = $this->oneStudents[$x + 1];
}
$this->setStudentCount($this->getStudentCount() - 1);
}
}
return $this->getStudentCount();
}
}
$firstStudent = new SingleStudentClass("A","B");
echo $firstStudent->getStudent(1);
echo "<BR>";
$secondStudent = new SingleStudentClass("C", "D");
echo $secondStudent->getStudent(1);
echo "<BR>";
$students = new MultipleStudentsClass();
$studentsCount = $students->addStudent($firstStudent);
echo $students->getStudent($studentsCount);
echo "<BR>";
$studentsCount = $students->addStudent($secondStudent);
echo $students->getStudent($studentsCount);
echo "<BR>";
$studentsCount = $students->removeStudent($firstStudent);
echo $students->getStudentCount();
echo "<BR>";
echo $students->getStudent(1);
echo "<BR>";
?>
- Output for 8.3.5
- 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
<?
abstract class StudentManager {
abstract function getStudent($previousStudent);
abstract function getStudentCount();
abstract function setStudentCount($new_count);
abstract function addStudent($oneStudent);
abstract function removeStudent($oneStudent);
}
class SingleStudentClass extends StudentManager {
private $firstName;
private $lastName;
function __construct($firstName, $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
}
function getStudent($studentToGet) {
if (1 == $studentToGet) {
return $this->firstName." by ".$this->lastName;
} else {
return FALSE;
}
}
function getStudentCount() {
return 1;
}
function setStudentCount($newCount) {
return FALSE;
}
function addStudent($oneStudent) {
return FALSE;
}
function removeStudent($oneStudent) {
return FALSE;
}
}
class MultipleStudentsClass extends StudentManager {
private $oneStudents = array();
private $studentCount;
public function __construct() {
$this->setStudentCount(0);
}
public function getStudentCount() {
return $this->studentCount;
}
public function setStudentCount($newCount) {
$this->studentCount = $newCount;
}
public function getStudent($studentToGet) {
if ($studentToGet <= $this->studentCount) {
return $this->oneStudents[$studentToGet]->getStudent(1);
} else {
return FALSE;
}
}
public function addStudent($oneStudent) {
$this->setStudentCount($this->getStudentCount() + 1);
$this->oneStudents[$this->getStudentCount()] = $oneStudent;
return $this->getStudentCount();
}
public function removeStudent($oneStudent) {
$counter = 0;
while (++$counter <= $this->getStudentCount()) {
if ($oneStudent->getStudent(1) ==
$this->oneStudents[$counter]->getStudent(1)) {
for ($x = $counter; $x < $this->getStudentCount(); $x++) {
$this->oneStudents[$x] = $this->oneStudents[$x + 1];
}
$this->setStudentCount($this->getStudentCount() - 1);
}
}
return $this->getStudentCount();
}
}
$firstStudent = new SingleStudentClass("A","B");
echo $firstStudent->getStudent(1);
echo "<BR>";
$secondStudent = new SingleStudentClass("C", "D");
echo $secondStudent->getStudent(1);
echo "<BR>";
$students = new MultipleStudentsClass();
$studentsCount = $students->addStudent($firstStudent);
echo $students->getStudent($studentsCount);
echo "<BR>";
$studentsCount = $students->addStudent($secondStudent);
echo $students->getStudent($studentsCount);
echo "<BR>";
$studentsCount = $students->removeStudent($firstStudent);
echo $students->getStudentCount();
echo "<BR>";
echo $students->getStudent(1);
echo "<BR>";
?>
- Output for 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.8 - 5.6.28, 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.3.32 - 7.3.33, 7.4.33, 8.0.13
- A by B<BR>C by D<BR>A by B<BR>C by D<BR>1<BR>C by D<BR>
preferences:
266.82 ms | 402 KiB | 357 Q