• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit einer Variable

xXxPeterPanxXx

Neues Mitglied
Hi,
ich bin ja noch anfänger und habe mich nun an die functionen gesetzt.
Code:
<?php
$i = 0 < 10;
function quadrat($x) 
{
$ergebnis = $x * $x;
echo $ergebnis;
}
quadrat($i);

?>
Aber Leider gibt der Browser nur 1.
Wenn ich das ohne die Variable mache funktioniert es.
Code:
<?php
function quadrat($x) 
{
$ergebnis = $x * $x;
echo $ergebnis;
}
quadrat(5);

?>
Aber mit der Variable kann man sich aber viel Tipparbeit ersparen, nur ich erkenn keinen Fehler.
 
Werbung:
selbst ist der mann(/die frau) also lern debuggen ^^ gleich am anfang ists am besten ;)

PHP:
<?php

function quadrat($x) 
{
    $ergebnis = $x * $x;
    return $ergebnis;
}

$i = 0 < 10;

echo "Das quadrat von '".$i."' ist '".quadrat($i)."'!";

?>
 
Ah erstmal danke für dein bemühen, aber funktioneiren tut auch nicht, Es wird nur die 1 ausgewertet, aber nicht die anderen Zahlen(2,3,4,5...10)
Was meinst du mit debuggen?
 
Werbung:
versuch es doch mal mit einer Schleife...

PHP für dich - for-Schleife

PHP:
<?php
  for($i = 1; $i < 10; $count++)
    {
    echo quadrat($i);
    }
  ?>
Danke für deine Tipp, aber die Idee erscheint mir nicht sehr sinnvoll, da es dadurch keine fuction mehr ist. Man kann glaube ich nicht einfach echo quadrat($i) schreiben. php Weiss ja nicht einmal was das quadrat soll. quadrat ist in dem Fall eine ganz normarle Zeichenkette ohne " oder '.
 
Was ist denn das für ein Quatsch?

$i = 0 < 10; ich tippe dabei mal auf einen booleschen Rückgabewert (also true bzw. 1) denn 0 ist kleiner als 10 und das Quadrat von 1 ist nunmal 1 (sehe diese Schreibweise allerdings zum ersten mal, dass das bei einer Zuweisung funktioniert wusste ich nicht)

bei der Schleife:

nicht $count hochzählen sondern $i

natürlich kann man echo quadrat($i); schreiben und natürlich bleibt es eine Funktion.

PHP:
function quadrat($x)
{
    $ergebnis = $x * $x;
    return $ergebnis;
}
hast du dadurch ja nicht verändert
 
Werbung:
Was ist denn das für ein Quatsch?

$i = 0 < 10; ich tippe dabei mal auf einen booleschen Rückgabewert (also true bzw. 1) denn 0 ist kleiner als 10 und das Quadrat von 1 ist nunmal 1 (sehe diese Schreibweise allerdings zum ersten mal, dass das bei einer Zuweisung funktioniert wusste ich nicht)

bei der Schleife:

nicht $count hochzählen sondern $i

natürlich kann man echo quadrat($i); schreiben
Nein, kein booleschen Rückgabewert sondern die Zahlen an sich sollen zurückgegeben werden. Diese Zahlen von eins bis zehn werden mal sich selbst gerechnet.
 
Tut mir Leid, aber ich bekomme das mit der Schleife nicht hin:
Code:
<?php
 for( $j = 1; $j < 10; $j++);

function quadrat($j)
{
  $ende = $j * $j;
  echo $ende . '<br />';
}
quadrat($j)
?>
 
Werbung:
In einer Funktion hat echo nichts zu suchen (sollte dort nur zu debug-zwecken Verwendung finden)

PHP:
function quadrat($j)
{
  return $j * $j;
}

for( $j = 1; $j < 10; $j++) {
  echo quadrat($j);
}
 
mit debuggen meine ich das du bei meinem beispiel herausgefunden hättest das dein $i nicht das ist was du wolltest, oder was für ein verhalten hast du erwartet? ^^
 
Du solltest dir wirklich nochmal die Grundlagen in Sachen PHP anschauen, wenn du zB so etwas schreibst:

PHP:
 for( $j = 1; $j < 10; $j++);

Ist ja nicht böse gemeint, aber wenn der Boden nicht stabil ist, kann man auch kein Haus drauf bauen :)

MfG Icy
 
Werbung:
Du solltest dir wirklich nochmal die Grundlagen in Sachen PHP anschauen, wenn du zB so etwas schreibst:

PHP:
 for( $j = 1; $j < 10; $j++);
Ist ja nicht böse gemeint, aber wenn der Boden nicht stabil ist, kann man auch kein Haus drauf bauen :)

MfG Icy
Ja, ich bin noch nicht so gut in php, aber was soll man erwarten nach 2 Wochen.



Ach man ich kriege das einfach nicht, ich glaube(hoffe) das ist nur noch ein Fehler mit { und }. Hier der Code:
Code:
<?php
function quadrat($j)
{ 
for($j = 1; $j <= 10; $j++) 
$ende = $j * $j; { 
echo quadrat($ende);
}
}

?>
Folgende Fehlermeldung erscheint, die ich nicht verstehe:Fatal error: Cannot redeclare quadrat() (previously declared in C:\xampp\htdocs\projects\php-training\funktion-quadrat.php:10) in C:\xampp\htdocs\projects\php-training\funktion-quadrat.php on line 26
 
Zuletzt bearbeitet:
dein ziel ist es mit den zahlen von 1 bis 10 die funktion quadrat aufzurufen, also brauchst du eine funktion und eine schleife die beide nichts miteinander zu tun haben

PHP:
// funktion
function quadrat($x) {
    return $x * $x;
}

// schleife
for($i = 1; $i <= 10; $i++) {
    echo quadrat($i);
}
 
Werbung:
Da ist ein großes LOL bei mir fällig!

Lesen bildet, habt ihr das gewusst?

Ich zitiert mich mal selbst von Seite 1 :roll:
asipak4you schrieb:
PHP:
function quadrat($j)
{
  return $j * $j;
}

for( $j = 1; $j < 10; $j++) {
  echo quadrat($j);
}

Gleicher Code, andere Variablen und es funktioniert trotzdem.
 
mit dem kleinen unterschied das du es so für leute erklärt hast due was von computern verstehen. der kerl saß da warscheinlich vor und dachte nur "bahnhof". ;) irgendwas von bytes und so ;)

und er hat sich angestrengt und versucht das nach deiner beschreibung selbst nachzubauen und ist dabei gescheitert. ^^

//Edit: natürlich kann es auch sein das er es beim zweiten versuch satt hatte und meinen code kopiert hat :-D (aber was weiß ich schon ^^)
 
Werbung:
Jop,

das habe ich ihm auch schon gesagt:

$i = 0 < 10; ich tippe dabei mal auf einen booleschen Rückgabewert (also true bzw. 1) denn 0 ist kleiner als 10 und das Quadrat von 1 ist nunmal 1 (sehe diese Schreibweise allerdings zum ersten mal, dass das bei einer Zuweisung funktioniert wusste ich nicht)

Aber er versucht ja gar nicht erst es zu verstehen, sondern antwortet mit dem Satz den du bereits zitiert hast und so missverständlich habe ich das doch auch nicht erklärt :(

Slibbo schrieb:
und er hat sich angestrengt und versucht das nach deiner beschreibung selbst nachzubauen und ist dabei gescheitert. ^^
Naja, wer weiß.
 
so missverständlich habe ich das doch auch nicht erklärt
Naja, verstanden hat er es offensichtlich nicht. Sonst hätte er ja nicht so geantwortet. :-)
Ich verstehe das, aber ich bin als Programmierer auch vorbelastet. Er war ja der Ansicht, dass das eine Schleife ist, wo $i nacheinander die Werte von 0 bis 10 annimmt. Dann ist klar, dass er daraufhin antwortet, dass das kein boolscher Ausdruck sei, auch wenn das nicht stimmt.
 
Zurück
Oben