WinFuture-Forum.de: If-funktion In Funktion Packen. - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

If-funktion In Funktion Packen.


#1 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 17. April 2008 - 13:18

hallo Leute,

Ich schreibe gerade an einem Programm in PHP. Ich möchte gerne eine If-Funktion in eine Funktion packen, bzw. dies hier vereinfachen:
// Summer der Teilrechnungen erstellen
//Stufe 1
$ergebnis1 = $s11 + $s12;
if($ergebnis1>=98 and $ergebnis1<=101):{
	$erg ="<img src='1.png'/>  Der Wert betr&auml;gt $ergebnis1. Die Stufe 1 ist Fehlerfrei.";}
else:{
	$erg ="<img src='0.png'/>  Der Wert betr&auml;gt $ergebnis1. Die Stufe 1 beinhaltet Fehler.";}
endif;
$erg1 = $erg;
//Stufe 2
$ergebnis2 = $s21 + $s22 + $s23;
if($ergebnis2>=98 and $ergebnis2<=101):{
	$erg ="<img src='1.png'/>  Der Wert betr&auml;gt $ergebnis2. Die Stufe 2 ist Fehlerfrei.";}
else:{
	$erg ="<img src='0.png'/>  Der Wert betr&auml;gt $ergebnis2. Die Stufe 2 beinhaltet Fehler.";}
endif;
$erg2 = $erg;
//Sufe3
$ergebnis3 = $s31 + $s32 + $s33 + $s34;
if($ergebnis3>=98 and $ergebnis3<=101):{
	$erg ="<img src='1.png'/>  Der Wert betr&auml;gt $ergebnis3. Die Stufe 3 ist Fehlerfrei.";}
else:{
	$erg ="<img src='0.png'/>  Der Wert betr&auml;gt $ergebnis3. Die Stufe 3 beinhaltet Fehler.";}
endif;
$erg3 = $erg;

und so weiter, es geht bis Stufe 10 :-D

Mir ist 100%klar, dass das so total unschön ist, ich nutze es aber damit das Script läuft.
Jetzt suche ich nach einer Lösung, nur eine If-Funktion in einer Funktion hat leider bei mir nicht geklappt.

Hatte es mir so gedacht, nur es geht nicht:

Wo liegt der Fehler?:
<?php
$x = 100; // zu überprüfende Zahl
$y = 2; // Stufe

function pruef($x,$y){ 

if($x>=98 and $x<=101):{
	$erg ="<img src='1.png'/>  Der Wert betr&auml;gt $x2. Die Stufe $y ist Fehlerfrei.";}
else:{
	$erg ="<img src='0.png'/>  Der Wert betr&auml;gt $x2. Die Stufe $y beinhaltet Fehler.";}
endif;
echo $erg;
}

// Stufe 3
$x = 100; 
$y = 3; 
function pruef($x,$y);

// oder so? für Stufe 3
function pruef(100,3);
?>


Wer kann mir sagen was ich falsch mache....
INFO: Hier ist mein Script: Mein Script

danke!
0

Anzeige



#2 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 17. April 2008 - 14:18

Nochmal:

Entweder:
if($x==$y):
%CODE%
else:
%CODE%
endif;

ODER:
if($x==$y)
{
%CODE%
}
else
{
%CODE%
}

und um es bis zu Stufe 10 aufzurufen:
for($y=1;$y<=10;$y++)
{
pruef($x,$y);
}


Zudem ist das HTML invalid.

Dieser Beitrag wurde von [Elite-|-Killer] bearbeitet: 17. April 2008 - 14:20

0

#3 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 17. April 2008 - 15:34

Hm habs größtenteils verstanden. Was meinst du denn mit "Zudem ist das HTML invalid. "?


Nur den for Teil habe ich noch niht verstanden.

ich werde dann ja irgendwann etwa soetwas angeben


pruef (x,y);

und das dann für andere Stufen... wie kennzeichne ich denn nun für welches Stufe es ist.
Muss ich da noch mit Variabekn arbeiten die dann über pruef(); stehen?

Dieser Beitrag wurde von Toasterfraktion bearbeitet: 17. April 2008 - 15:45

0

#4 Mitglied ist offline   K050V4 

  • Gruppe: aktive Mitglieder
  • Beiträge: 788
  • Beigetreten: 13. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart
  • Interessen:(X)HTML<br />CSS2+<br />PHP 4/5<br />MySQL 5<br />Symfony 1.2+<br />JavaScript / AJAX<br />jQuery<br />C++<br />C#<br />Java<br />...

geschrieben 17. April 2008 - 15:37

Beitrag anzeigenZitat (Toasterfraktion: 17.04.2008, 16:34)

ahchso... jetzt hab ich es endgültig verstanden und werde nun auch nicht mehr nerven. :-)


Du nervst nicht, frag ruhig, wenn du etwas wissen möchtest :gähn:

Dieser Beitrag wurde von K050V4 bearbeitet: 17. April 2008 - 15:38

Zitat

"In der Welt des Erkennbaren ist die Idee des Guten die höchste." - Platon

Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
0

#5 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 17. April 2008 - 15:42

Sry K050V4 ich musste meinen Beitrag dochnochmal ändern, denn ich habe nun doch nicht alles verstanden. Ich verstehe das Prinzip einfach nicht.
0

#6 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 17. April 2008 - 16:25

Beitrag anzeigenZitat (Toasterfraktion: 17.04.2008, 16:34)

Hm habs größtenteils verstanden. Was meinst du denn mit "Zudem ist das HTML invalid. "?


Der img-Tag erfordert das alt-Attribut.

Zitat

Nur den for Teil habe ich noch niht verstanden.

ich werde dann ja irgendwann etwa soetwas angeben

pruef (x,y);

und das dann für andere Stufen... wie kennzeichne ich denn nun für welches Stufe es ist.
Muss ich da noch mit Variabekn arbeiten die dann über pruef(); stehen?

for($y=1;$y<=10;$y++)
{
pruef($x,$y);
}


Erzeugt folgenden Code:

(ich habe keine Ahnung für was das x gut ist, bzw. wie sich der Wert ändert.)

pruef($x,1); // Stufe 1
pruef($x,2); // Stufe 2
pruef($x,3); // Stufe 3
pruef($x,4); // Stufe 4
pruef($x,5); // Stufe 5
pruef($x,6); // Stufe 6
pruef($x,7); // Stufe 7
pruef($x,8); // Stufe 8
pruef($x,9); // Stufe 9
pruef($x,10); // Stufe 10

Dieser Beitrag wurde von [Elite-|-Killer] bearbeitet: 17. April 2008 - 16:26

0

#7 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 17. April 2008 - 17:29

Ehrlichgesagt blicke ich nun überhaupt icht mehr durch:

Ich wollte nur das Script vereinfachen. Das ist mir nun gelungen, ich weiß aber dass es noch weiter gehen kann.

Es gilt nun dieses Script noch zu vereinfachen, wer hat ideen?
<?php
// Summer der Teilrechnungen erstellen

function pruef ($ergebnis,$stufe){
	if($ergebnis>=98 and $ergebnis<=101)
	{echo "<img src='1.png'/>  Der Wert betr&auml;gt $ergebnis. Die Stufe $stufe ist Fehlerfrei.<br>";}
	else
	{echo "<img src='0.png'/>  Der Wert betr&auml;gt $ergebnis. Die Stufe $stufe beinhaltet Fehler.<br>";}
}


$stufe =1;
$ergebnis = $s11 + $s12;
pruef ($ergebnis,$stufe);
$stufe =2;
$ergebnis = $s21 + $s22 + $s23;
pruef ($ergebnis,$stufe);
$stufe =3;
$ergebnis = $s31 + $s32 + $s33 + $s34;
pruef ($ergebnis,$stufe);
$stufe =4;
$ergebnis4 = $s41 + $s42 + $s43 + $s44 + $s45;
pruef ($ergebnis,$stufe);
$stufe =5;
$ergebnis = $s51 + $s52 + $s53 + $s54 + $s55 + $s56;
pruef ($ergebnis,$stufe);
$stufe =6;
$ergebnis = $s61 + $s62 + $s63 + $s64 + $s65 + $s66 + $s67;
pruef ($ergebnis,$stufe);
$stufe =7;
$ergebnis = $s71 + $s72 + $s73 + $s74 + $s75 + $s76 + $s77 + $s78;
pruef ($ergebnis,$stufe);
$stufe =8;
$ergebnis = $s81 + $s82 + $s83 + $s84 + $s85 + $s86 + $s87 + $s88 + $s89;
pruef ($ergebnis,$stufe);
$stufe =9;
$ergebnis = $s91 + $s92 + $s93 + $s94 + $s95 + $s96 + $s97 + $s98 + $s99 + $s100;
pruef ($ergebnis,$stufe);
$stufe =10;
$ergebnis = $s110 + $s120 + $s130 + $s140 + $s150 + $s160 + $s170 + $s180 + $s190 + $s200 + $s210;
pruef ($ergebnis,$stufe);
?>

Vieleicht hilft euch das hier weiter wenn ich euch zeigen wofür es eigentlich gut ist

Dieser Beitrag wurde von Toasterfraktion bearbeitet: 17. April 2008 - 17:31

0

#8 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 17. April 2008 - 18:09

function pruef ($ergebnis,$stufe){
	if($ergebnis>=98 and $ergebnis<=101)
	{echo "<img src='1.png'/>  Der Wert betr&auml;gt $ergebnis. Die Stufe $stufe ist Fehlerfrei.<br>";}
	else
	{echo "<img src='0.png'/>  Der Wert betr&auml;gt $ergebnis. Die Stufe $stufe beinhaltet Fehler.<br>";}
}

/*
Wenn die Variablen, die zu Ergebnis addiert werden, jeweils in einen Array packen würdest, wäre es einfacher zu addieren.
So wie du es bis jetzt hattest ginge es allerdings mit eval oder so auch.
Da es aber etwas komplizierter ist mache ich nun mal den Vorschlag mit dem Array
Statt "$s".$stufe."$x" verwendest du $s[$stufe][$x]
also aus 
$ergebnis = $s51 + $s52 + $s53 + $s54 + $s55 + $s56; 
machst du
$ergebnis = $s[5][1] + $s[5][2] + $s[5][3]+ $s[5][4]+ $s[5][5]+ $s[5][6];
*/

for ( $stufe = 1; $stufe <= 10; $stufe++ )
{
	// Ergebnis berechnen
	foreach($s[$stufe] as $x)
	{
		$ergebnis = $ergebnis + $x;
	}
	pruef (  $ergebnis , $stufe );
}

0

#9 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 18. April 2008 - 18:43

Okay vielen Danke Elite Killer mir leuchtet so einiges ein...

:-) danke
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0