myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

PHP-Neuling

Willkommen

myGully

Links

Forum

 
Antwort
 
Themen-Optionen Ansicht
Ungelesen 08.06.10, 20:22   #1
urga
Mitglied
 
Benutzerbild von urga
 
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
urga ist noch neu hier! | 0 Respekt Punkte
Standard

naja, debuggen, debuggen und nochmals debuggen :P

deine funktion sieht ja fast so aus:
Code:
function isPrime ($i) {
	$prime = $i;
	$start = 1;
	$count = 0;
	for (; $start <= $prime ;){
		if($prime % $start) {
			$start++;
		}
		else {
			$count++;
			$start++;
		}       
	}
	return $count == 2;
}
und da ist irgendetwas falsch.

edit

insbesondere ist:
Code:
if ($count=2) {
falsch
__________________
entropie erfordert keine wartung
urga ist offline   Mit Zitat antworten
Ungelesen 08.06.10, 21:08   #2
kramido
Erfahrener Newbie
 
Registriert seit: Apr 2010
Beiträge: 172
Bedankt: 31
kramido ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von urga Beitrag anzeigen
insbesondere ist:
Code:
if ($count=2) {
falsch
Vielleicht klärst du ihn auch auf, wieso!

Bei PHP (ähnlich auch bei C/C++/Java) ist der Zuweisungsoperator = nicht das gleiche wie der Vergleichsoperator == (in PHP sogar noch === für typengerechte Vergleiche).

PHP interpretiert alle Zahlen außer 0 und alle Zeichenfolgen außer einem leeren String "" als TRUE, die restlichen Fälle als FALSE.

Code:
if ($count=2);
ist identisch mit
Code:
$count = 2;
if ($count);
Was du erreichen wolltest, ist zu prüfen, ob count gleich 2 ist. Das funktioniert so:
Code:
if ($count == 2);
Schöner ist noch nachfolgende Variante, die den Fehler der Verwechslung von Zuweisung und Vergleich verhindert:
Code:
if (2 == $count);
Ich empfehle nachfolgend immer letztes Beispiel einzusetzen!
kramido ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:13 Uhr.


Sitemap

().