لماذا أحصل على خطأ "الوظيفة المفقودة"؟ وظيفتي هناك!
-
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()
عندما يتم الإعلان عن الطريقة ثابتة. في الظروف الخاصة ، يتم استدعاء أساليب المثيل أيضًا مع هذا الجملة.
لا تنتمي إلى StackOverflow