Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Brauche Hilfe mit PHP (https://www.delphipraxis.net/27759-brauche-hilfe-mit-php.html)

Nicolai1234 15. Aug 2004 12:24


Brauche Hilfe mit PHP
 
Hier habe hier eine Function mit php geschrieben und er sagt in Line 11 ist ein Fehler:
Woran liegt das??

Code:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<?php

function steuern ($punkte, $rasse)
{**
$punkte = $punkte - 500;
$punkte = round('$punkte');
$punkte = $punkte / 1000;
$punkte = $punkte * $punkte * 1000;
if ($rasse = "Myraner") then $punkte = $punkte * 0.9;
if ($rasse = "Beraluten") then $punkte = $punkte * 1.1;
if ($rasse = "Tradoner") then $punkte = $punkte * 1.3;

if ($punkte < 20000) then &punkte = 20000;
if ($punkte > 500000) then $punkte = 500000;

return $punkte;
}
?>

</head>

<body>

<?php
$punkte = 10352;
$rasse = "Tradoner";

echo(steuern($punkte,$rasse));
?>

</body>

</html>

Daniel 15. Aug 2004 12:28

Re: Brauche Hilfe mit PHP
 
Grundsätzlich:
Wenn ein Fehler auftritt, dann sage uns unbedingt, welcher Fehler es war. :roll: Sollen wir das jetzt raten?

Zu Deinem Code:
Code:
$punkte = round('$punkte');
sieht nicht gut aus, da Du der Funktion 'round' einen String (!) übergibst. Kann sein, dass PHP diesen zu Null castet, aber das wird nicht das sein, was Du möchtest.
Nimm' die Hochkommata weg:

Code:
$punkte = round( $punkte );

Daniel 15. Aug 2004 12:30

Re: Brauche Hilfe mit PHP
 
Nächster Fehler weiter unten:

Code:
if ($punkte < 20000) then &punkte = 20000;
das muss $punkte heißen.

Phoenix 15. Aug 2004 12:31

Re: Brauche Hilfe mit PHP
 
Also Zeile 11 ist okay.

Code:
function steuern ($punkte, $rasse)

$punkte = $punkte - 500;
$punkte = round( $punkte );
$punkte = $punkte / 1000;
$punkte = $punkte * $punkte * 1000;
if ($rasse == "Myraner") { $punkte = $punkte * 0.9; }
if ($rasse == "Beraluten") { $punkte = $punkte * 1.1; }
if ($rasse == "Tradoner") { $punkte = $punkte * 1.3; }

if ($punkte < 20000) { $punkte = 20000; }
if ($punkte > 500000) { $punkte = 500000; }

return $punkte;
}
Vergleiche in PHP sind '==' und nicht '=', ein 'then' gibt es nicht, das muss alles in geschweifte klammern, und in Zeile 19 hattest Du noch nen Tippfehler drin ('&' anstelle von '$').

Der Code da oben tut bei mir.

Edit: Hochkommatas beim Round auch noch entfernt.

Daniel 15. Aug 2004 12:32

Re: Brauche Hilfe mit PHP
 
Und der Vergleich ist ebenfalls nicht korrekt:

Code:
if ($rasse = "Myraner")
Nimm' das doppelte Gleichheitszeichen, sonst hast Du eine Zuweisung. :roll:

Code:
if ($rasse == "Myraner")
Dies gilt für alle drei Vergleiche.

Phoenix 15. Aug 2004 12:33

Re: Brauche Hilfe mit PHP
 
Zitat:

Zitat von Daniel
Kann sein, dass PHP diesen zu Null castet, aber das wird nicht das sein, was Du möchtest.

Jup, wird nach 0 gecastet. Zumindest sieht das Ergebnis sehr danach aus. ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz