Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
6 / 6 / 1
Регистрация: 26.12.2013
Сообщений: 352

Non-static method Letter::types() should not be called statically, assuming $this from incompatible context

25.11.2015, 00:42. Показов 5162. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь зайти в редактор шаблонов, в скрипте и выдает вот такую вот ошибку:
" Non-static method Letter::types() should not be called statically, assuming $this from incompatible context "
путь/_search.php(37)

Код с ошибкой:


PHP/HTML
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<li>
         <?php echo $form->label($model,'subject'); ?>
         <?php echo $form->textField($model,'subject',array('size'=>60,'maxlength'=>255, 'class' => 'text')); ?>
     </li>
 
     <li>
         <?php echo $form->label($model,'message'); ?>
         <?php echo $form->textArea($model,'message',array('rows'=>6, 'cols'=>50, 'class' => 'textarea')); ?>
     </li>
 
     <li>
         <?php echo $form->labelEx($model,'type'); ?>
         <?php echo $form->dropDownList($model,'type',Letter::types(), array ('class' => 'select',  'empty' => '')); ?>
     </li>
 
     <li>
         <?php echo $form->labelEx($model,'lon'); ?>
         <?php echo $form->dropDownList($model,'lon',Lookup::items('Visible'), array ('class' => 'select', 'empty' => '')); ?>
     </li>
 
 
 </ol>
 </fieldset>
 
 <fieldset class="submit">
Подскажите, что не так в этом запросе и как решить эту проблему?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.11.2015, 00:42
Ответы с готовыми решениями:

Как исправить: Strict standards: Non-static method YaMailClass::getInstance() should not be called statically in
Вот ошибка: Strict standards: Non-static method YaMailClass::getInstance() should not be called statically in Вот строка на...

Исправить Deprecated: Non-static method cls::__set_state() should not be called statically
Deprecated: Non-static method cls::__set_state() should not be called statically in E:\OpenServer\domains\php\01\1.18\4.php(42) : eval()'d...

Non-static method DB::__construct() cannot be called statically
Добрый день!Как избавиться от этой ошибки. класс который унаследует abstract class AbstractObjectDB extends DB{ const...

17
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
25.11.2015, 10:18
Цитата Сообщение от Grep1994 Посмотреть сообщение
Подскажите, что не так в этом запросе и как решить эту проблему?
Собственно в сообщении об ошибке все написано. Метод types класса Letter не является статичным, а вызывается как статичный.
0
6 / 6 / 1
Регистрация: 26.12.2013
Сообщений: 352
25.11.2015, 12:45  [ТС]
Цитата Сообщение от Grep1994 Посмотреть сообщение
и как решить эту проблему?
Есть какой-нибудь урок по этому поводу? Или, если это всё быстро можно исправить, подскажите как?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
25.11.2015, 13:03
Цитата Сообщение от Grep1994 Посмотреть сообщение
Есть какой-нибудь урок по этому поводу?
ООП в php
Цитата Сообщение от Grep1994 Посмотреть сообщение
Или, если это всё быстро можно исправить, подскажите как?
Это скорее вопрос к автору кода. Может просто забыл добавить static к методу, а возможно и логическая ошибка, для исправления которой нужно много всего исправлять.
1
6 / 6 / 1
Регистрация: 26.12.2013
Сообщений: 352
25.11.2015, 13:16  [ТС]
Спасибо. Буду колупаться.
0
 Аватар для GoDr
90 / 79 / 33
Регистрация: 17.08.2015
Сообщений: 512
Записей в блоге: 1
25.11.2015, 19:55
Grep1994, У тебя ошибка в методе, а ты показываешь вызов.
Метод покажи!

PS
99,99% ошибка связана с тем что код писался под "лохматые" PHP. А тут появился PHP 5.3 и сказал что так больше делать нельзя ))))

Добавлено через 2 минуты
PHP
1
2
3
4
5
class Letter{
   public function types(){
      /////
   }
}
и
PHP
1
2
3
4
5
class Letter{
   public static function types(){
      /////
   }
}
почувствуй разницу..

Добавлено через 1 минуту
первый вариант вызывается так
...->types()...
Второй
...::types()...
2
0 / 0 / 0
Регистрация: 10.02.2015
Сообщений: 27
05.06.2016, 18:07
Добрый день а подскажите как исправить вот такую ошибку Strict Standards: Non-static method Ops::getPageTitle() should not be called statically, assuming $this from incompatible context in вот код
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function display() {
        global  $CFG;       
        
        self::executeUpdates();
    
        // display form
        if (!$this->output_started) {
            if (!$this->has_areas && !strstr($this->name,'form_filters') && !$CFG->in_popup && $CFG->backstage_mode) {
                echo '
                <div class="area full_box">
                    <h2>'.(($CFG->form_legend) ? $CFG->form_legend : Ops::getPageTitle()).'</h2>
                    <div class="box_bar"></div>
                    <div class="box_tl"></div>
                    <div class="box_tr"></div>
                    <div class="box_bl"></div>
                    <div class="box_br"></div>
                    <div class="t_shadow"></div>
                    <div class="r_shadow"></div>
                    <div class="b_shadow"></div>
                    <div class="l_shadow"></div>
                    <div class="box_b"></div>
                    <div class="contain">';
            }
            if (!$CFG->pm_editor) {
                echo '<form name="'.$this->name.'" action="'.$this->action.'" class="form '.$this->class.'" method="'.$this->method.'"  '.$this->enctype.' '.$this->target.'>';
            }
            else {
                echo '<div class="form '.$this->class.'">';
            }
        }
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
05.06.2016, 18:42
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Собственно в сообщении об ошибке все написано. Метод types getPageTitle класса Letter Ops не является статичным, а вызывается как статичный.
...
0
05.06.2016, 18:48

Не по теме:

ужас :D

0
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 12
21.04.2019, 14:44
первый вариант вызывается так
...->types()...
Второй
...::types()...
строка с ошибкой вот такая
PHP
1
$ext = mgal_media_handler::getExt($name);
если меняю :: на ->
syntax error, unexpected '->' (T_OBJECT_OPERATOR)
ошибка появилась после перехода на php 7
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
21.04.2019, 15:02
Цитата Сообщение от axrey Посмотреть сообщение
строка с ошибкой вот такая
А сама ошибка как какая?
0
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 12
21.04.2019, 16:23
сама ошибка
Non-static method mgal_media_handler::getExt() should not be called statically
вот кусок кода где ошибка появляется
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function getEncryptedFilename($name, $id, $check_for_encrypted = false, $both = false)
{
    global $mgalSettings;
 
    if ($id < 5)
        return $both ? array($name, $name) : $name;
 
    // Remove special accented characters - eg. sн.
    $clean_name = strtr($name, 'ЉЋљћџАБВГДЕЗИЙКЛМНОПСТУФХЦШЩЪЫЬЭабвгдезийклмнопстуфхцшщъыьэя', 'SZszYAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy');
    $clean_name = strtr($clean_name, array('Ю' => 'TH', 'ю' => 'th', 'Р' => 'DH', 'р' => 'dh', 'Я' => 'ss', 'Њ' => 'OE', 'њ' => 'oe', 'Ж' => 'AE', 'ж' => 'ae', 'µ' => 'u'));
 
    // Sorry, no spaces, dots, or anything else but letters allowed.
    $clean_name = preg_replace(array('/\s/', '/[^\w_\.-]/'), array('_', ''), $clean_name);
    $ext = mgal_media_handler::getExt($name);
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
21.04.2019, 16:29
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Собственно в сообщении об ошибке все написано. Метод types getPageTitle getExt класса Letter Ops mgal_media_handler не является статичным, а вызывается как статичный.
...
Прошло 3 года, ничего не поменялось
https://www.php.net/manual/ru/... static.php
0
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 12
21.04.2019, 16:36
я понимаю что ничего не изменилось, как и в моих знаниях по ООП в php
код старый, писал не я, проект не поддерживается уже много лет.
думал может есть простой способ убрать ошибку, если нет, то проще откатить версию пхп для данного сайта
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
22.04.2019, 10:11
axrey, а сделать метод getExt() статическим нельзя?
0
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 12
22.04.2019, 10:55
Не знаю))
Вы имеете в виду добавить в static в название функции?
Наверное можно, вопрос какие будут последствия…
0
 Аватар для Строитель
1084 / 746 / 364
Регистрация: 09.07.2018
Сообщений: 1,760
22.04.2019, 13:30
Цитата Сообщение от axrey Посмотреть сообщение
Вы имеете в виду добавить в static в название функции?
Да, ведь вы итак обращаетесь к этому методу, как к статическому.
Цитата Сообщение от axrey Посмотреть сообщение
Наверное можно, вопрос какие будут последствия…
Ну, попробовать наверное стОит, что бы исключить ошибку.
1
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 12
22.04.2019, 23:01
попробовал. не знаю будут ли негативные последствия, но ошибка пропала
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.04.2019, 23:01
Помогаю со студенческими работами здесь

Non-static method cannot be called statically - как разрулить ситуацию?
Всем привет! Имеется класс для работы с PDO. И имеется вот такая функция: public function query($query, $start = 0, $offset = 0)...

Ошибка “non-static method cannot be referenced from a static context”
Проблема в том, что в одном классе он просто сделать методы static, а в другом - требует обратного и я уже понятия не имею что сделать ...

Non-Static method cannot be referenced from a static context
Всем привет! Не могу никак разобраться со статическими и нестатическими классами в Java. Создал 2 класса в главном вызываю метод cheak,...

Ошибка: non-static variable this cannot be referenced from a static context
Добрый вечер! Не пинайте сильно ногами, недавно решил взяться за обучение языку Java, что в мои годы уже подвиг сам по себе. Зубрю...

Non-static variable a cannot be referenced from a static context
non-static variable a cannot be referenced from a static context public class MyClass { private int a=2; private boolean...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru