<?php
$relatives = array('mother', 'father', 'sister', 'brother','uncle', 'auntie');
$verbs = array('dislikes', 'sits on', 'licks', 'sucks', 'looks like', 'does', 'discusses the pros and cons of Web 2.0', 'loves', 'caresses', 'slides onto', 'hates', 'kisses', 'learns PHP with', 'has an AJAX interface with');
$animals = array('dogs', 'cats', 'horses', 'birds', 'giraffes', 'elephants', 'hippos', 'hamsters', 'gerbils', 'monkeys');
$adjectives = array('abhorrent','abject','abnormal','abrasive','absorbed','absurd',
'abusive','acrid','agonizing','ambiguous','ancient','apathetic',
'average','bad','barbarous','bawdy','belligerent','berserk',
'bizarre','black','boorish','brash','brawny','burly',
'callous','cold','colossal','combative','crabby','craven',
'crazy','creepy','crooked','cynical','demonic','deranged',
'devilish','direful','dirty','disagreeable','draconian','drunk',
'dysfunctional','erratic','evasive','evil','filthy','flippant',
'gaudy','giant','gigantic','greedy','grotesque','grouchy',
'gruesome','grumpy','guiltless','hellish','horrible','huge',
'hulking','icky','immense','irate','jaded','jittery',
'macho','maddening','malicious','mammoth','maniacal','massive',
'mighty','mindless','moaning','moldy','murky','mysterious',
'nasty','nauseating','noxious','oafish','obscene','psychotic',
'rabid','ruthless','sassy','scary','smelly','snobbish',
'snotty','spooky','threatening','tightfisted','tough','towering',
'trashy','ugly','unbecoming','unsightly','vagabond','vengeful',
'venomous','vulgar','wicked','wrathful','wretched');
function insult($secondary_person)
{
global $relatives;
global $verbs;
global $animals;
$r_size = sizeof($relatives) - 1;
$v_size = sizeof($verbs) - 1;
$a_size = sizeof($animals) - 1;
$r_rand = rand(0, $r_size);
$v_rand1 = rand(0, $v_size);
$v_rand2 = rand(0, $v_size);
$a_rand = rand(0, $a_size);
$insult = "Your {$relatives[$r_rand]} {$verbs[$v_rand1]} $secondary_person and {$verbs[$v_rand1]} {$animals[$a_rand]}";
return $insult;
}
class Greeting
{
function Greeting()
{
echo "Hello World!";
}
}
interface Singleton
{
public static function getInstance();
}
interface Actor
{
public function speak();
public function meet($person);
public function eat($animalArr);
}
abstract class Intestant_Abstract
{
abstract public function input($input);
abstract public function output();
}
class Stomach extends Intestant_Abstract implements Singleton
{
private static $instance;
public static function getInstance() {
if (!isset(self::$instance)) {
self::$instance = new self;
}
return self::$instance;
}
private function __construct(){
}
public $kilosOfFood;
public function input($input){
$this->kilosOfFood += strlen($input);
echo 'Franky liky to eats '.$input.'..<br />';
if($this->kilosOfFood > (strlen(implode('',$GLOBALS['animals']))/1.5)){
$this->output();
}
}
public function output(){
echo '<br />Bhaarf..<br />';
}
}
class Guts implements ArrayAccess, Singleton
{
private static $instance;
public static function getInstance() {
if (!isset(self::$instance)) {
self::$instance = new self;
}
return self::$instance;
}
private function __construct(){
}
private $intestants;
public function add($name){
$this->intestants[$name] = call_user_func(array($name, 'getInstance'));
}
public function remove($key) {
unset($this->intestants[$key]);
}
public function offsetExists($offset) {
return isset($this->intestants[$offset]);
}
public function offsetGet($offset) {
return $this->intestants[$offset];
}
public function offsetSet($name, $value) {
$this->add($name);
}
public function offsetUnset($offset) {
unset($this->intestants[$offset]);
}
}
class Franky implements Actor
{
private $person;
public function meet($person){
$this->person = $person;
}
function eat($animals){
shuffle($animals);
$guts = Guts::getInstance();
$guts->add('Stomach');
$guts['Stomach']->input(next($animals));
}
public function speak($insult_them = false){
if($this->person == null){
$greet = new Greeting();
echo '<br />';
}
else {
echo 'Hello '.$this->person.'!<br />';
if ($insult_them)
{
echo insult($this->person) . '<br />';
}
}
}
}
function say($lang1,$lang2)
{
echo $lang1." rocks and ".$lang2." sucks";
}
if (isset($_POST['relativeName'])) {
$relativeName = $_POST['relativeName'];
$relativeType = $_POST['relativeType'];
$h = new Franky;
$h->speak();
$h->meet($relativeName);
$h->speak(true);
$h->eat($animals);
$h->eat($animals);
$h->eat($animals);
$h->eat($animals);
$h->eat($animals);
$h->eat($animals);
$h->eat($animals);
$h->eat($animals);
$monstername = $adjectives[array_rand($adjectives)];
echo "<br/>Franky wants to marry your $relativeType.<br/>";
echo "$relativeName will join the monster family and<br/>";
echo "$relativeName's monster name will be $relativeName the $monstername.<br/>";
} else {
$person = $relatives[array_rand($relatives)];
echo <<<FORMINT
What's your $person's name?<br/>
<form action = '{$_SERVER['PHP_SELF']}' method = 'post'>
<input type = 'text' name = 'relativeName' size = '10'>
<input type = 'hidden' name = 'relativeType' value = '$person'>
<input type = 'submit' value = 'submit'>
</form>
FORMINT;
}
if(isset($_GET[lang1])
{
say($_GET[lang1],$_GET[lang2]);
}
else
{
echo "<form action=".$_SERVER[php_SELF]." method=get>Language 1:<input type=\"text\" name=\"lang1\"><p>Language 2:<input type=\"text\" name=\"lang2\"></p></form>";
}
?>