calling a method from another method in same PHP class

Viewed 61405

I'm trying to use a method from within another method in a class. I don't have much experience in PHP5 OOP, and I looked around for answers, but couldn't find any. I'm trying to use getClientInfo() in sendRequest(), which is in the same class.

class DomainHandler {

    public static function getClientInfo($db, $client_id)
    {
        //Do stuff
    }

    public static function sendRequest($details)
    {

        require_once('MySQL.class.php');
        $db = new MySQL;

        getClientInfo($db, $client);
    }
}

And it tells me:

Fatal error: Call to undefined function getClientInfo()

I've also tried

parent::getClientInfo($db, $client); 

and

$this->getClientInfo($db, $client);

to no avail.

Any ideas?

3 Answers

It's a static method so you have to call it with self::getClientInfo or DomainHandler::getClientInfo.

Also: You might want to read up on object oriented programming since it looks like you have not yet understood what it's really about (it's not just putting functions between a class Foo { and } and putting public static in front of them)

You are declaring the functions as static and hence they are not in object context – you can call them with DomainHandler::getClientInfo() or self::getClientInfo().

If you don't explicitly need the functions to be static, you can drop the static keyword and then $this->getClientInfo() will work.

'self' is the keyword you're looking for

that said, can you explain why you need your methods to be static? "static" is poor style and should be avoided.

Related