<?php
class Animal {
protected $what = "nothing";
protected $born;
// Add this: public function__construct(){}
// only when class does not explicity specify a constructor
// ? would the constructor be visible to users or like JAVA invisible
//
// Below code has a constructor so default constructor doesn't get created
// public function __construct() {
// $this->setBirthDate();
// }
function sound() {
echo get_class($this)." says {$this->what}";
}
function showBirthDate() {
return $this->born;
}
function setBirthdate() {
$this->born = time();
}
}
class Cow extends Animal {
protected $what = "moo";
protected $owner;
public function __construct($owner) {
$this->owner = $owner;
// by default this would always be called so no need to write it
parent::__construct();
}
}
$a = new Cow("Old McDonald");
$a->sound();
//echo "\nCow born: ",date("M j, Y",$a->showBirthDate());
Fatal error: Uncaught Error: Cannot call constructor in /in/Roccj:36
Stack trace:
#0 /in/Roccj(40): Cow->__construct('Old McDonald')
#1 {main}
thrown in /in/Roccj on line 36
Process exited with code 255.
Fatal error: Can not call constructor in /in/Roccj on line 36
Process exited with code 255.
Output for 5.1.0
Fatal error: fatal flex scanner internal error--end of buffer missed in /in/Roccj on line 42
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/Roccj on line 3
Process exited with code 255.
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/Roccj on line 3
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/Roccj on line 3
Process exited with code 255.