undifined function
ik ben een beetje aan het klooien met OOP.
maar kom echter tegen een probleem aan. Als ik het script uitvoer krijg ik een error namelijk:
Fatal error: Call to undefined function test() in c:\wamp\www\oop.php on line 32
hier is de code
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>PHP OOP TEST</title>
</head>
<body>
<?php
Class test {
var $name;
var $age;
var $gender;
function test(){
$this -> name = $_POST['name'];
$this -> age = $_POST['age'];
$this -> gender = $_POST['gender'];
return $this;
}
}
if(isset($_POST['submit'])){
if(!empty($_POST['name']) && !empty($_POST['name']) && !empty($_POST['name'])){
define ("ERROR", "FALSE");
echo test();
} else {
echo 'Please enter all the information';
}
}
if(!defined(ERROR)){
echo '<form action="" method="post">';
echo '<input name="name" type="text" id="name" value="name" />';
echo '<input name="age" type="text" id="age" value="age" />';
echo '<input name="gender" type="text" id="gender" value="gender" />';
echo '<input type="submit" name="submit" value="Submit" />';
echo '</form>';
}
?>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>PHP OOP TEST</title>
</head>
<body>
<?php
Class test {
var $name;
var $age;
var $gender;
function test(){
$this -> name = $_POST['name'];
$this -> age = $_POST['age'];
$this -> gender = $_POST['gender'];
return $this;
}
}
if(isset($_POST['submit'])){
if(!empty($_POST['name']) && !empty($_POST['name']) && !empty($_POST['name'])){
define ("ERROR", "FALSE");
echo test();
} else {
echo 'Please enter all the information';
}
}
if(!defined(ERROR)){
echo '<form action="" method="post">';
echo '<input name="name" type="text" id="name" value="name" />';
echo '<input name="age" type="text" id="age" value="age" />';
echo '<input name="gender" type="text" id="gender" value="gender" />';
echo '<input type="submit" name="submit" value="Submit" />';
echo '</form>';
}
?>
</body>
</html>
Iemand die de fout ziet ?
Gewijzigd op 01/01/1970 01:00:00 door Grizz
dat verhelpt de error niet.
Fatal error: Call to undefined function test() in c:\wamp\www\oop.php on line 35
undefined function betekend dat je een functie probeerd op te vragen die niet bestaat
$test = new test();
var_dump($test);
Allereerst op regel 28:
Lijkt me dat hier niet 3x name moet staan ;)
Daarnaast roep je de functie uit je class verkeerd aan. Als je het op jouw manier wilt doen, zul je de volgende code in plaats van regel 33 moeten gebruiken:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$test = new test() // Eerst een nieuw object maken mbv je class.
echo $test -> test() // Dan pas kun je de functie gebruiken.
?>
$test = new test() // Eerst een nieuw object maken mbv je class.
echo $test -> test() // Dan pas kun je de functie gebruiken.
?>
En dan nog zal het niet goed gaan, maar dat komt omdat de functie die je geschreven hebt niet klopt. De opdracht 'return $this;' geeft namelijk gewoon het object $test terug, meer niet.
Je zult dus binnen je class iets moeten doen als:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
function test()
{
$this -> name = $_POST['name'];
$this -> age = $_POST['age'];
$this -> gender = $_POST['gender'];
return $this -> name;
}
?>
function test()
{
$this -> name = $_POST['name'];
$this -> age = $_POST['age'];
$this -> gender = $_POST['gender'];
return $this -> name;
}
?>
Dit geeft dan alleen de naam terug, maar ik zie het doel er al niet van in om dit in een class te zetten terwijl je ook alleen de functie in je PHP code kan plaatsen...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Thanks.. :P ik zal verder nog wat documentatie... doorlezen :)
Blanche
newbie
Gewijzigd op 01/01/1970 01:00:00 door Grizz
De rating heeft geen enkele betrekking op je php kunsten, maar op hoe snel je berichtjes kan intikken op phphulp ;)