Home » Php » oop – calling a method from another method in same PHP class

oop – calling a method from another method in same PHP class

Posted by: admin April 23, 2020 Leave a comment

Questions:

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?

How to&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)

Answer:

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.

Answer:

‘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.