6

I am getting an error in PHP:

PHP Fatal error:  Call to undefined function getCookie

Code:

include('Core/dAmnPHP.php');
$tokenarray = getCookie($username, $password);

Inside of dAmnPHP.php, it includes a function called getCookie inside class dAmnPHP. When I run my script it tells me that the function is undefined.

What am I doing wrong?

7
  • 7
    If you are told that the function is undefined, then thats what the problem is. You need to show how and where you create the funtion if you want a better answer. Commented May 30, 2012 at 13:19
  • 6
    you have no warnings of file not found? Try require instead of include to confirm that file is included. Commented May 30, 2012 at 13:20
  • add this error_reporting(E_ALL); to the top of the script to check if you get an E_WARNING Commented May 30, 2012 at 13:31
  • You might also want to echo some output inside your included file, to make sure that you're including the file you think you're including. The number of hours I've wasted trying to track that down.... Commented May 30, 2012 at 13:34
  • 2
    Try dAmnPHP::getCookie($username, $password); Commented May 30, 2012 at 13:40

2 Answers 2

9

It looks like you need to create a new instance of the class before you can use its functions.

Try: $dAmn = new dAmnPHP; $dAmn->getCookie($username, $password);

I've not used dAmn before, so I can't be sure, but I pulled my info from here: https://github.com/DeathShadow/Contra/blob/master/core/dAmnPHP.php

Sign up to request clarification or add additional context in comments.

Comments

4

How to reproduce this error:

Put this in a file called a.php:

<?php
include('b.php');
umad();
?>

Put this in a file called b.php:

<?php
class myclass{
  function umad(){
    print "ok";
  }
}
?>

Run it:

PHP Fatal error:  Call to undefined function umad() in 
/home/el/a.php on line 4

What went wrong:

You can't use methods inside classes without instantiating them first. Do it like this:

<?php
include('b.php');
$mad = new myclass;
$mad->umad();
?>

Then the php interpreter can find the method:

eric@dev ~ $ php a.php
ok

1 Comment

To use the functions in a class you must instantiate a new class by putting the word new before it, without the parenthesis after, and assign that to a variable as shown in the example at the bottom.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.