لماذا أحصل على خطأ "الوظيفة المفقودة"؟ وظيفتي هناك!

StackOverflow https://stackoverflow.com/questions/3432066

  •  26-09-2019
  •  | 
  •  

سؤال

تلقيت "خطأ فادح: اتصل على وظيفة غير محددة getContent ()" مع الكود المضمّن ولكن ... كما ترون: وظيفتي موجودة هناك!

من فضلك ، مساعدة. أنا متأكد من أنني بحاجة إلى بعض النوم.

class InfoController extends AppController {

    var $name = 'Info';
    var $helpers = array('Html', 'Session');
    var $uses = array();

    function display() {
        $path = func_get_args();

        $section = $path[0];
        $mainMenuActiveElement = $section;
        $sectionContent = getSContent($section);

        $this->set(compact('section', 'mainMenuActiveElement', 'sectionContent'));
        $this->render('/pages/info');
    }

    function getSContent($section) {
        $sectionContent = '';
        switch ($section) {
            case 'bases':
                $sectionContent = 'some content';
                break;
            case 'informacion':
                $sectionContent = 'some other content';
                break;
        }
        return $sectionContent; 
    }

}
هل كانت مفيدة؟

المحلول

عليك تحديد السياق. PHP على عكس EG C ++ لا يفترض this بشكل ضمني.

$sectionContent = $this->getSContent($section);

نصائح أخرى

وظيفتك ، على وجه الخصوص ، طريقة. لا تعيش أسماء الأسلوب في جدول وظائف PHP ، فهي مرتبطة بفئة معينة.

يجب أن تتصل بهم بالتدوين $object->methodName(), ، أين $object يمكن ان يكون $this عندما يكون داخل طريقة من أجل استدعاء طريقة مثيل لنفس المثيل مثل الطريقة الحالية.

يصبح التدوين ClassName::methodName() عندما يتم الإعلان عن الطريقة ثابتة. في الظروف الخاصة ، يتم استدعاء أساليب المثيل أيضًا مع هذا الجملة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top