Aynı PHP sınıfta başka bir yöntemle bir yöntemi çağırmak

3 Cevap php

Bir sınıftan başka bir yöntemi içinde bir yöntemi kullanmaya çalışıyorum. Ben PHP5 OOP çok deneyimi yok, ve ben cevaplar için etrafına baktı, ama hiçbir şey bulamadı. Ben aynı sınıfta getClientInfo () SendRequest in () kullanmaya çalışıyorum.

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);
    }
}

Ve bana söyler:

Fatal error: Call to undefined function getClientInfo()

Ben de denedim

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

ve

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

boşuna.

Herhangi bir fikir?

3 Cevap

Kendini :: getClientInfo veya DomainHandler :: getClientInfo ile aramak zorunda statik bir yöntem.

Ayrıca: Sen henüz bu konuda (Bu sadece bir sınıf Foo {ve} arasında işlevlerini koyarak ve önlerinde genel statik koyarak değil) gerçekten anlamış değil gibi görünüyor bu yana nesne yönelimli programlamaya kadar okumak isteyebilirsiniz

Sen static olarak işlevlerini bildirmek ve dolayısıyla nesne bağlamında değil - Eğer DomainHandler::getClientInfo() veya self::getClientInfo() ile onları arayabilirsiniz.

Açıkça statik olması fonksiyonları gerekmez varsa, static anahtar kelimeyi sürükleyip bırakın ve sonra $this->getClientInfo() çalışacaktır.

'Öz' aradığınız anahtar kelime

Eğer statik olmak için yöntemler neden ihtiyaç olduğunu söyledi, açıklayabilir misin? "Statik" yoksul tarzı ve kaçınılmalıdır.