webForumDet fria alternativet

PHP Uppgifter?

PHPur PHP

30 svar · 973 visningar · startad av mahjar · sida 2 av 2

Frågan, av mahjar

Tjena. Jag har precis börjat läsa PHP och vill lära mig mer genom att göra uppgifter, inte svåra uppgifter där man måste skriva mycket kod. Tex så här: Uppgift: Vad kan du hitta för fel på den här koden Kod: \<?php $rätt = "grattis du klara det"; %\> Svar: i slutet av phptaggen ska det vara ?\>, inte %\> som asp använder... den frågan gjorde ja ju snabbt bara, lite svårare skulle jag vilja ha...

Läs frågan i sin helhet →
Medlem sedan okt. 200457 inlägg
#21

Ok tack mcfetto och assah fatta nu =)

Medlem sedan mars 20034 471 inlägg
#22

aasah skrev:

Vad skrivs ut?

$minTal = 7;
$maxTal = 9;
echo "min = $mintal, max = $maxTal";

Medlem sedan okt. 200457 inlägg
#23

aasah skrev:

aasah skrev:

Vad skrivs ut?

$minTal = 7;
$maxTal = 9;
echo "min = $mintal, max = $maxTal";

min = 7, max = 9

Bokstaven T i mintal måste vara stor som variabeln...

Medlem sedan mars 20034 471 inlägg
#24

mahjar skrev:

... min = 7, max = 9

Bokstaven T i mintal måste vara stor som variabeln...

Precis. :) Så eftersom den inte var det? Vad skriver det jag skrev ut? ;)

Medlem sedan okt. 200457 inlägg
#25

min = , max = 9 :D

Medlem sedan mars 20034 471 inlägg
#26

:D

aasah skrev:

$minTal = 7;
$maxTal = 9;
echo "min = $mintal, max = $maxTal";

Det här är faktiskt ett hyfsat vanligt fel att göra... ;) Speciellt i lite större filer där tilldelning och utskrift inte står på raderna under varann.

Ett bra tips är att lägga in
error_reporting(E_ALL);
högst upp i skripten för då får man ut även varningar. Med denna rad hade du även fått ut infon att du använde en variabel som inte var satt. Det kan vara bra ibland eftersom felet kan vara betydligt lömskare...
Ex:
$minTal = 7;
$maxTal = 9;
// 100 rader kod
$sextitre = $mintal*$maxTal;
echo "$sextitre"; //vilket spottar ut 0... :bla ;)

Vad händer här?

$nio = 9;
function addNine($x) {
 return ($nio + $x);
}
$nitton = addNine(10);
echo "$nitton";
Medlem sedan juni 20006 031 inlägg
#27

En enkel for loop:

<?php 
echo "<select>\n";
for ($antal=22; $antal<51; $antal++) {
	echo "<option value=\"$antal\">$antal</option>\n";
}
echo "</select>\n";
?>
Medlem sedan okt. 200457 inlägg
#28

aasah skrev:

Vad händer här?

$nio = 9;
function addNine($x) {
 return ($nio + $x);
}
$nitton = addNine(10);
echo "$nitton";

Det den gör:

  1. Lägger värdet 9 i en varibel som heter nio
  2. Skapar en funktion (en bit kod man kan anropa), som tar emot ett värde, och skickar tillbaka "värdet"+innehållet i varibeln nio
  3. Du anropar funktionen addNine och skickar värdet tio till den. addNine plusar tio med innehållet i variablen nio och skickar tillbaks detta.
  4. eftersom du sätter värdet på variablen $nitton till addNine(10); så kommer addNine(10); att retunera talet 19 som sparas i varibeln nitton.

och så måste man skriva echo $nitton; eftersom det inte är en sträng utan en variabel... :)

Medlem sedan mars 20034 471 inlägg
#29

mahjar skrev:

... Det den gör:

  1. Lägger värdet 9 i en varibel som heter nio
  2. Skapar en funktion (en bit kod man kan anropa), som tar emot ett värde, och skickar tillbaka "värdet"+innehållet i varibeln nio
  3. Du anropar funktionen addNine och skickar värdet tio till den. addNine plusar tio med innehållet i variablen nio och skickar tillbaks detta.
  4. eftersom du sätter värdet på variablen $nitton till addNine(10); så kommer addNine(10); att retunera talet 19 som sparas i varibeln nitton.

och så måste man skriva echo $nitton; eftersom det inte är en sträng utan en variabel... :)

Om jag hade givit ett snällt exempel så hade 1-4 varit rätt... §jr Dvs du har rätt beträffande hur funktionsanrop fungerar rent allmänt och vad som menas med att returnera värden. :)

Men... nu var inte det här något helt snällt exempel... §jr. Om du prövar att köra det i ett skript kommer du att upptäcka det. Det finns en liten hake någonstans...

Vad gäller ditt tillägg om echo, så ska du kanske gå tillbaka hit och jämföra... Det var alltså inte det som var haken.

Vill du hellre ha en förklaring än att köra och se vad som faktiskt händer, så kan du visst få det. :) Skriv det i så fall.

Medlem sedan sep. 2002366 inlägg
#30

Lite rekursion kan ju alltid vara bra att kunna (och användande av -- och ++)

Fråga 1
Vad kommer skrivas ut här?

function power($base, $exp) {
	if ($exp == 1)
		return $base;
	return $base * power($base, --$exp);
}

print power(2,3);

Vad skulle hända om du satte -- efter $exp istället?

Fråga 2
Vad skrivs ut här?

$n = 9;
while ($n--)
	print ($n % 3) + 1 . "\n";
Medlem sedan juni 20031 837 inlägg
#31

Här kommer en som mixar ihop lite som du stött på i tidigare uppgifter samt en ny sak.

$antal_anrop = 0;

function anrop_1()
{
    $antal_anrop++;
}

function anrop_2()
{
    global $antal_anrop;
    $antal_anrop++;
}

for($i=0;$i<10;$i++)
{
    ($i % 2) ? anrop_1() : anrop_2();
    echo "<br>$i : $antal_anrop";
}
142 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)