# \[PHP\] utiliser array

**URL:** <https://www.debian-fr.org/t/php-utiliser-array/62510>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 8:25 UTC](https://www.debian-fr.org/t/php-utiliser-array/62510 "2016-02-21T20:25:45Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![blaisoth](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/90db22/32.png) [@blaisoth](https://www.debian-fr.org/u/blaisoth)\
**Post date:** [Février 21, 2016, 8:25 UTC](https://www.debian-fr.org/t/php-utiliser-array/62510/1 "2016-02-21T20:25:45Z")

</div>

je dois pas avoir la bonne doc PHP, j’y comprends rien.  
Mon code n’affiche pas le contenu de $champs[$num], les $donnees[‘Field’] s’affichent bien :

[code]\<?php  
class Membre {

```
function __construct(PDO $bdd){	
	$reponse = $bdd->query('DESCRIBE BFC');	
	while ($donnees = $reponse->fetch()){
		// $champs[] = $donnees['Field']; rien s'affiche par recup()
		array_push($champs, $donnees['Field']); // erreur $champs n'est pas un array
		echo '<p>champ : '.$donnees['Field'].'</p>'."\n\r";	
	}
	$reponse->closeCursor();		
}

function recup($num){
 	return $champs[$num];
}

private $champs;

```

}  
?\>[/code]

[code] \<?php

```
		$toto = new Membre(base());
		echo $toto->recup(1);
		
	
	?>[/code]

```

vive les jours fériés

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 8:25 UTC](https://www.debian-fr.org/t/php-utiliser-array/62510/2 "2016-02-21T20:25:49Z")

</div>

Met un $champs=array(); avant peut être

---

<div class="post-metadata">

**Author:** ![blaisoth](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/90db22/32.png) [@blaisoth](https://www.debian-fr.org/u/blaisoth)\
**Post date:** [Février 21, 2016, 8:25 UTC](https://www.debian-fr.org/t/php-utiliser-array/62510/3 "2016-02-21T20:25:49Z")

</div>

Quand je complète mon “private $champs;” en $champs = array();  
ca change rien mais quand je mets $champs = array(); juste avant le push\_array, ya plus l’erreur mais ça n’affiche toujours rien.  
Est-ce qu’en plus de mon problème d’array, je ne comprends pas non plus le fonctionnement de la portée des variables membres dans le constructeur …?  
edit : ou ces deux problèmes n’en sont qu’un je le sens bien

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 8:25 UTC](https://www.debian-fr.org/t/php-utiliser-array/62510/4 "2016-02-21T20:25:50Z")

</div>

Les tableaux démarrent à 0 non?

---

<div class="post-metadata">

**Author:** ![haleth](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/h/ecc23a/32.png) [@haleth](https://www.debian-fr.org/u/haleth)\
**Post date:** [Février 21, 2016, 8:25 UTC](https://www.debian-fr.org/t/php-utiliser-array/62510/5 "2016-02-21T20:25:51Z")

</div>

> [@](#):
>
> function recup($num){  
> return $champs[$num];  
> }

À quoi sert cette fonction .. ?

---

<div class="post-metadata">

**Author:** ![blaisoth](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/90db22/32.png) [@blaisoth](https://www.debian-fr.org/u/blaisoth)\
**Post date:** [Février 21, 2016, 8:25 UTC](https://www.debian-fr.org/t/php-utiliser-array/62510/6 "2016-02-21T20:25:53Z")

</div>

> [@](#):
>
> Les tableaux démarrent à 0 non?

oui, et je sais qu’il doit contenir une dizaine de données. C’est un essai au pif

> [@](#):
>
> À quoi sert cette fonction .. ?

A me familiariser avec PHP. Un bête accesseur dans une bête classe, en JAVA ça serait déjà plié …  
Là c’est galère et compagnie.

---

<div class="post-metadata">

**Author:** ![blaisoth](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/90db22/32.png) [@blaisoth](https://www.debian-fr.org/u/blaisoth)\
**Post date:** [Février 21, 2016, 8:25 UTC](https://www.debian-fr.org/t/php-utiliser-array/62510/7 "2016-02-21T20:25:53Z")

</div>

ben voilà, c’est tout c. comme j’imaginais : les données membres doivent précédées d’un $this  
En java, le this me servait dans l’objet quand je passait un paramètre avec le même nom qu’une donnée membre, ça faisait la distinction entre les deux.  
Je le saurai !  
Merci !

---

<div class="post-metadata">

**Author:** ![haleth](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/h/ecc23a/32.png) [@haleth](https://www.debian-fr.org/u/haleth)\
**Post date:** [Février 21, 2016, 8:25 UTC](https://www.debian-fr.org/t/php-utiliser-array/62510/8 "2016-02-21T20:25:54Z")

</div>

> [@](#):
>
> Un bête accesseur dans une bête classe, en JAVA ça serait déjà plié …

Ouais, comme tu dit, c’est bête.  
Tu ne devrais pas prendre exemple sur java;  
php te permet de faire beaucoup plus: implémenter correctement le principe d’encapsulation, par exemple 🙂

---

<div class="post-metadata">

**Author:** ![blaisoth](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/90db22/32.png) [@blaisoth](https://www.debian-fr.org/u/blaisoth)\
**Post date:** [Février 21, 2016, 8:25 UTC](https://www.debian-fr.org/t/php-utiliser-array/62510/9 "2016-02-21T20:25:55Z")

</div>

Je ne me permettrais pas de critiquer aucun langage vu mes connaissances, je disais simplement que ça devait être simple à résoudre.  
D’autre part, il me semble que Java encapsule parfaitement. Et Java possède de vrais objets ArrayList, pas PHP (selon mes connaissances toujours).
