Page 1 sur 1

typage et php5

Posté : 20 nov. 2005, 22:08
par jeff
salut
je reprend un mon poste precedent
public function setGroupe(array $data)//ceci retourne une erreur
    {
        $this->groupName=$data['groupname'];
        $this->mdpData=$data['mdp_data'];
    }

public function addUser(Users $user)//ceci fonctionne 
    {
        $this->user[]=$user;
    }
mais sur http://www.php.net/manual/fr/language.o ... inting.php
ils ont l'air de dire que les deux fonctionnent

une autre question
commen retourner une partie des attribut d'une class et qu'ils soient considere comme un objet et non comme un tableau
ex
actuellement je fait comme ca
class machin
private $truc;
private $autre;
private $chose;

public function getMachinToAutreClass()
{
return array($this->truc,$this->autre);
}

public function 
$essai= new machin();
$var= essai->getMachinToAutreClass()
comment faire pour que var soit considerer comme un objet??

Posté : 21 nov. 2005, 01:04
par Jawad
$var n'est pas un objet, il n'y a donc pas moyen de le considérer comme un objet!!

Ce que tu peux faire, c'est accéder directement aux attributs de ta classe (déclare-les alors comme public). A la limite, tu pourrais créer une classe vide juste pour lui affecter des attributs, mais c'est vraiment tordu...

Pour ta première question, ce serait gentil de préciser quel était ton premier post.

Re: typage et php5

Posté : 21 nov. 2005, 04:25
par Xenon_54
public function setGroupe(array $data)//ceci retourne une erreur
    {
        $this->groupName=$data['groupname'];
        $this->mdpData=$data['mdp_data'];
    }

public function addUser(Users $user)//ceci fonctionne 
    {
        $this->user[]=$user;
    }
mais sur http://www.php.net/manual/fr/language.o ... inting.php
ils ont l'air de dire que les deux fonctionnent
Je me permet de te rediriger vers ta propre source et de mettre une emphase sur cet extrait:
PHP 5 introduit le typage objet implicite (littéralement, Type Hinting). Les fonctions peuvent maintenant imposer aux paramètres d'être des objets (en spécifiant le nom de la classe dans le prototype de la fonction) ou des tableaux (depuis PHP 5.1).
une autre question
commen retourner une partie des attribut d'une class et qu'ils soient considere comme un objet et non comme un tableau
ex
actuellement je fait comme ca
class machin
private $truc;
private $autre;
private $chose;

public function getMachinToAutreClass()
{
return array($this->truc,$this->autre);
}

public function 
$essai= new machin();
$var= essai->getMachinToAutreClass()
comment faire pour que var soit considerer comme un objet??
Array n'est pas un objet. Il faudra, afin de faire ainsi, instancier une classe vide et lui affecter les propriétés voulues.
<?php
class Factory {
	private $name;
	private $phone;
	private $email;

	public function __construct() {
		$this->name = 'Jeff';
		$this->phone = '911';
		$this->email = 'jeff@localhost';
	}
	
	public function getContact() {
	
		$return = new stdClass();
		$return->name = $this->name;
		$return->phone = $this->phone;
		$return->email = $this->email;
		
		return $return;		
	}
}

$contact = new Factory();
print '<pre>';
var_dump($contact->getContact());
print '</pre>';
?>
;)

Posté : 21 nov. 2005, 08:45
par jeff
j'aurais peut etre du lire jusqu'a la fin :oops: