begin process at 2012 05 28 20:39:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Classes & Objets

 > 

Class Olivier extends Human


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Class Olivier extends Human

mercredi 3 novembre 2010 à 02:42:08 | Class Olivier extends Human

neigedhiver

Code PHP :
<?php
/*
 * Copyright (C) 2010 - Neigedhiver
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

namespace Animal;

class Human {
	const STATE_PITIFUL = 'pitiful';
	const STATE_TIRED = 'tired';
	const STATE_THINKING = 'thinking';
	const STATE_NO_SLEEPING_FOR_2_DAYS = 'almost dead';
}

/**
 * This is me
 * @author olivier
 *
 */
class Olivier extends Human {

	/**
	 * This is private == secret
	 * @var $age int
	 */
	private $age = 33;
	
	/**
	 * Oh ! Really ?
	 * @var boolean
	 */
	protected $geek = TRUE;
	
	/**
	 * The time I go to bed (UnixTimestamp)
	 * @TODO : Use DateTime
	 * @var $timeWentToBed int
	 */
	private $timeWentToBed;
	
	/**
	 * Naturraly, no one can change this value !!
	 * @return boolean
	 */
	public function isGeek() {
		return $geek;
	}
	
	public function __sleep() {
		switch ($this -> state) {
			case Human::STATE_THINKING:
			case Human::STATE_PITIFUL:
				$this -> waitBeforeSleep();
				break;
			case Human::STATE_NO_SLEEPING_FOR_2_DAYS:
				$this -> closeEyes('45min', array($this -> openEyes(), $this -> waitBeforeSleep()));
				break;
		}
	}
	
	public function __wakeUp() {
		if ($this -> hasAppoitment()) {
			$this -> openEyes();
			$this -> standUp();
			$this -> state = Human::STATE_PITIFUL & Human::STATE_TIRED;
			$this -> increaseAdrenaline('max');
			$this -> mode = 'hurry';
		}
		else {
			if ($this -> canEarAlarmClock()) {
				$this -> shutTheFuckUp($this -> alarmClock);
			}
			elseif ($this -> mode !== 'dreaming') {
				$this -> dream();
			}
		}
	}
	
	/**
	 * May I ever be able to sleep in less than 2 hours ?
	 */
	private function waitBeforeSleep() {
		static $wait = 0;
		// Can't really be 0...
		0 === $wait && $wait = mt_rand(1,6);
		// @TODO : use DateInterval and DatePeriod
		while(time() > $this -> timeWentToBed + 3600*$wait) {
			$this -> think() or $this -> worry();
			// Every 30 minutes...
			if ((time() - $this -> timeWentToBed) % 30 == 0) {
				$this -> openEyes();
			}
			if ($wait > 2 && time() > $this -> timeWentToBed + 3600) {
				$this -> standUp();
				$this -> wear($this -> clothes);
				$this -> computer -> screen -> powerOn();
				$this -> writeDumbCode();
			}
		}
		// Of course...
		if ($wait > 2) {
			$this -> state = Human::STATE_PITIFUL;
		}
		$wait = 0;
	}
	
	/**
	 * I wish I could live my dreams
	 */
	private function dream() {
		static $dreams = array('superHeroe', 'meetGirls', 'fly', 'sleeping', 'rich', 'famous', 'writeMovies');
		$this -> dream = mt_rand(0, count($dreams));
	}
	
	/**
	 * An important activity in my life
	 * @param $movie
	 */
	private function watchMovie(Movie $movie) {
		$this -> mode = 'lazy';
		if ($movie -> isBoring && $this -> eyesStatus === 'open') {
			$this -> closeEyes(new Flock(5000));
		}
		if ($movie -> isReallyBoring && $this -> state = Human::STATE_PITIFUL) {
			$this -> dream();
		}
		// Damn !!
		Delay::forget($movie, strtotime('+2 months'));
	}
	
	/**
	 * Yesssss :)
	 * @param $flock How many sheeps are there ?
	 */
	private function closeEyes(Flock $flock) {
		$count = 0;
		foreach ($flock as $sheep) {
			$count++;
		}
	}
	
	/**
	 * Does it really work ?
	 * @return boolean
	 */
	private function canEarAlarmClock() {
		$probability = $this -> state = Human::NO_SLEEP_FOR_2_DAYS ? 0.2 : 0.6;
		return Random::headsOrTails($probability);
	}
}


?>



--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
mercredi 3 novembre 2010 à 11:45:47 | Re : Class Olivier extends Human

TychoBrahe

Salut,

Code PHP :
<?php

include 'olivier.php';
$ol = new Animal\Olivier();
$sol = serialize($ol);

?>

Code :
Notice: Undefined property: Animal\Olivier::$state in /path/to/olivier.php on line 63

Notice: serialize(): __sleep should return an array only containing the names of instance-variables to serialize in /path/to/olivier_test.php on line 5

olivier.php contenant ta classe et olivier_test.php étant le code juste au dessus.
mercredi 3 novembre 2010 à 12:02:31 | Re : Class Olivier extends Human

neigedhiver

Arf, mince, c'est pour ça que je buggue tous les soirs dans mon lit...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)


Cette discussion est classée dans : function, private, state, if, human


Répondre à ce message

Sujets en rapport avec ce message

Besoin d'analyse critique [ par zzzzzz ] Yop,J'aurai besoin d'avis critique concernant une classe de connection mysql. Eventuel bugs/failles et idées pour la développer d'avantage.Voici la cl Blocage google map api [ par gus_air ] Bonjour, je débute sur les API googlemap et suis bloqué.En fait je cherche à placer sur une carte des marqueurs récupérés dans une base mysql.Certains formulaire [ par Nadmy ] bjr les gars é ben g fé un code pour reservation demenagement , dont un formulaire a remplir é g mi une dans une div en bas une calendrier pour choisi le début d'un formulaire un peu spécial [ par craso ] bonjour,il s'agit de la classe d'un formulaire validé par un input type=image, avec pour le moment une option : se déplacer ou combattre. Lorsque la b Formulaire PHP, reponse dans une autre page... [ par sebarca ] Bonjour, à tous, je pense que c'est mon premier post sur le forum malgré de nombreuses années de recherche sur celui-ci. Aujourd'hui je post un messag Différence ente protected function, public function, private function et function [ par dvdstory ] Bonjour à tous.Je n'arrive pas a trouver la différence entre "protected function" , "public <font color=" Aide formulaire php [ par syl1493 ] Bonjour, J'essaie d'adapter un script d'envoi d'un formulaire d'inscription avec pièces jointes. J'ai réussi à mettre en place l'envoi de 2 pièces jo Enlever lignes vide HTML [ par raven44 ] Bonjour, Voilà mon problème, j'ai un fichier php qui me génère du code xml et qui me l'affichage à la fin. Le code est bon, il n'y a pas de soucis l Custum plugging présentation de photos en full background [ par donzus ] Bonjour, je cherche à transformer le pluging suivant: "Djuve" (Système de présentation d'images avec vignettes) voici un exemple de ce pluging: ex ( Update mysql impossible [ par SpaceHam ] J'essaie via mysql (j'utilise le mysqli) d'updater ma table mais sans résultat. Je me suis tout de même basé sur une table utilisateur auquel j'update


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales