Salut tout le monde,
Je suis entrain de reécrire un programme en PHP que j'ai réalisé avant en java, j'ai besoin de savoir l'équivalent du mot clé final qui est devant une variable dans le langage java mais en PHP
Merci à vous
Version imprimable
Salut tout le monde,
Je suis entrain de reécrire un programme en PHP que j'ai réalisé avant en java, j'ai besoin de savoir l'équivalent du mot clé final qui est devant une variable dans le langage java mais en PHP
Merci à vous
En PHP cela n'existe pas pour les propriétés, juste pour les classes ou les méthodes.
http://www.php.net/manual/fr/language.oop5.final.php
Salut,
Merci pour votre réponse, j'ai remarqué que ca existe pour les classes et les méthodes et j'ai souhaité que ca existe aussi pour les variables:(
Mon problème est que j'ai réecrit le meme code en php mais celui en Java donne un résultat différent, la seule chose qui est différente entre les deux codes est les variables qui sont final dans la version java
Avez vous une solution??
peu tu nous copier ton code, car p-e que le probleme est tout autre ( loop non cassée etc...)
OK, voilà mon code, c'est une classe qui modélise l'algorithme de Dijkstra
ca doit retourner un tableau $chemin qui contient: 0 et 1 mais ca retourne un tableau vide :(Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129 <?php class Dijkstra //c'est la classe qui modélise le graphe { var $arc= array(); // Matrice d'adjacense qui modélise les arcs entre les noeuds var $nombre=0; //pour maintenir le nombre des sommets var $infini = 0; function Dijkstra ($nombre,&$ourMap, $infini)//initialisation de graphe durant les itérations { $this -> arc = &$ourMap; $this -> nombre = $nombre; $this -> infini=$infini; } function ChercheVoisin($noeud) { //construit un tableau des sommets adjacents d'un sommet $count=0; $voisins = array(); //trouver les voisins for ($i = 0; $i<count($this -> arc[$noeud]); $i++) { if ($this -> arc[$noeud][$i]>0 ) { //stocker les voisins dans rep $voisins[$count++]=$i; } } return $voisins; } //application de Dijkstra //pour faire l'appel il faut désigner le graphe , le départ et l'arrivée function trouverChemin($depart,$arrivee) { //Tableau des distances $distance = array(); //Tableau des predecesseurs $predecesseurs = array(); //Tableau des valeurs 0 ou 1 pour marquer si chaque sommet est visité ou non $marque = array(); for ($i = 0; $i < $this -> nombre; $i++) { //initialisation du tableau distance à* l'infinie $distance[$i]=$this -> infini; $marque [$i]=false; } //initialisation de la distance de la source à 0 $distance[$depart]=0; for ($i = 0; $i < $this -> nombre; $i++) { //extraire le minimum du tableau distance en tenant compte que les sommets à* comparer ne sont pas visités $min= $this -> ExtraireMin ($distance, $marque); //changer la valeur* à true pour dire que ce sommet est visité $marque[$min]=true; //chercher les voisins du sommet actuel $SesVoisins= array(); $SesVoisins= $this -> ChercheVoisin($min); //chercher le voisin le plus proche for ($j = 0; $j < count($SesVoisins); $j++) { $voisinActuel = $SesVoisins [$j]; //avoir la nouvelle distance pour le sommet actuel en ajoutant la valeur du nouveau arc à* la distance totale $distanceActuelle = $distance[$min] + $this -> arc [$min][$voisinActuel]; //si c'est le voisin trouvé est le plus proche changer la distance et le predecesseur if ($distanceActuelle <$distance[$voisinActuel]) { $distance[$voisinActuel]=$distanceActuelle; $predecesseurs[$voisinActuel]=$min; } } } //pour récupérer le chemin entre le point de départ et l'arrivée $chemin=array(); $x=$arrivee; while($x!=$depart) { array_unshift($chemin, $x); $x=$predecesseurs[$x]; } array_unshift($chemin, $depart); //retourner le tableau contenant la sécance des sommets return $chemin; } function ExtraireMin($distance, $marque){ //initialiser x à* l'infinie $x =$this -> infini; $y=0; //trouver la valeur minimale du tableau for ($i = 0; $i < count($distance); $i++) { if (!$marque[$i] && $distance[$i]< $x) { $y=$i; $x=$distance[$i]; } } //retourner la valeur trouvée return $y; } } //je test avec $matrice_cout =array(array(0,5),array(5,0)) et count($ourVille)=2 $graphe = new Dijkstra(count($ourVille), $matrice_cout, 100000); //$depart = 0 et $arrivee = 1 $res=$graphe -> trouverChemin($depart,$arrivee); ?>
ok ok un truc qui devrais t'aider c'est de casser tes loop example
tu as peut-etre des boucles qui reecrivent plusieurs fois et comme cette algo est tres recurssif ...Code:
1
2
3
4
5
6
7
8
9
10 for ($i = 0; $i<count($this -> arc[$noeud]); $i++) { if ($this -> arc[$noeud][$i]>0 ) { //stocker les voisins dans rep $voisins[$count++]=$i; break; } }
Sinon en quel mesure les resultats sont differents ?