Waarom lukt het echoën van een php-functie niet?
include-test.php:
Code (php)
en include.php:
Het lukt echter alleen als ik het zo doe:
include-test.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<!DOCTYPE HTML>
<html>
<head>
<title>Demo</title>
<meta charset="windows-1252" />
</head>
<body>
<?php include("include.php"); ?>
</body>
</html>
<html>
<head>
<title>Demo</title>
<meta charset="windows-1252" />
</head>
<body>
<?php include("include.php"); ?>
</body>
</html>
en include.php:
Waarom krijg ik bij de eerste testopstelling geen 'Gelukt!' als ik include-test.php open?
Gewijzigd op 04/03/2013 16:56:41 door Frank Conijn
Ik denk dat jij dit wilt:
Code (php)
En dan dit als include.php:
Code (php)
Ik heb dus nu een functie met de naam lukthet gemaakt.
Die kijkt zelf naar $_GET (die hoef je dus niet door te geven!) of die er is of niet.
En zo ja: dan GEEFT hij (return) hij wat tekst terug.
Die echo je in je code zelf (niet in de functie).
Probeer even exact te snappen wat het doet en hoe het werkt.
Vragen? Stel ze gerust.
Gewijzigd op 04/03/2013 16:59:18 door Eddy E
Eddy E op 04/03/2013 16:57:48:
global $_GET;
$_GET is een superglobal dus die hoef je nooit global te maken. Dat is ie al.
Het is me in zoverre duidelijk dat ik alles wat ik nodig heb me duidelijk is. En met de standaard include-functie kom ik er ook. Alleen begrijp ik niet goed waarom mijn echoën niet lukt en het jouwe wel. Want jij echoot toch ook een functie?
Dat jouw functie ergens anders uitgevoerd wordt en dat daarna het resultaat ervan teruggegeven wordt is me duidelijk, maar het is me niet helemaal duidelijk waarom ik niet gewoon een functie in zijn geheel kan echoën. Wat is het verschil tussen echoën en includeren, in deze? Want daar komt het op neer.
php-transfer.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php require("php-transfer-required.php"); ?>
<?php echo $part_1 ?>
<title>Demo</title>
<style>
html.normal {
background: yellow;
}
html.touch {
background: red;
}
body {
margin: 50px;
padding: 50px;
color: white;
}
body.normal {
background: green;
}
body.touch {
background: black;
}
</style>
</head>
<body class="<?php echo detectMachineType() ?>">
<p>Er zijn dus maar liefst nog drie manieren
om (het resultaat van) een PHP-functie over
te brengen naar/te gebruiken in een ander bestand
(cookie-waarde: <?php echo $cookie_waarde ?>)...</p>
</body>
</html>
<?php echo $part_1 ?>
<title>Demo</title>
<style>
html.normal {
background: yellow;
}
html.touch {
background: red;
}
body {
margin: 50px;
padding: 50px;
color: white;
}
body.normal {
background: green;
}
body.touch {
background: black;
}
</style>
</head>
<body class="<?php echo detectMachineType() ?>">
<p>Er zijn dus maar liefst nog drie manieren
om (het resultaat van) een PHP-functie over
te brengen naar/te gebruiken in een ander bestand
(cookie-waarde: <?php echo $cookie_waarde ?>)...</p>
</body>
</html>
php-transfer-required.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function detectMachineType() {
if(isset($_COOKIE['machineType']))
{ $cookie_val = $_COOKIE['machineType']; }
else
{ $cookie_val = "normal"; }
return $cookie_val;
}
$cookie_waarde = detectMachineType(); /* $cookie_val laten
echoën levert een undefined-variable-melding op */
$part_1 =
'<!DOCTYPE html>
<html class="'.detectMachineType().'">
<head>
<meta charset="utf-8">
'
?>
function detectMachineType() {
if(isset($_COOKIE['machineType']))
{ $cookie_val = $_COOKIE['machineType']; }
else
{ $cookie_val = "normal"; }
return $cookie_val;
}
$cookie_waarde = detectMachineType(); /* $cookie_val laten
echoën levert een undefined-variable-melding op */
$part_1 =
'<!DOCTYPE html>
<html class="'.detectMachineType().'">
<head>
<meta charset="utf-8">
'
?>
Gewijzigd op 22/03/2013 11:18:56 door Frank Conijn