За последние 24 часа нас посетили 38623 программиста и 1284 робота. Сейчас ищут 1086 программистов ...

Strict Standards

Тема в разделе "PHP для новичков", создана пользователем Slavka, 11 окт 2013.

  1. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    Ткните плиз меня в манул

    делаю так
    include ("/main.php");
    class kuku{

    Function blabla () {
    main::autocomplite("schema","table","index","NAME");
    }

    мне выдается
    Strict Standards: Non-static method main::autocomplite() should not be called statically, assuming $this from incompatible context in kuku.php on line 13

    при чем строчек много таких - и в конце всетаки результат есть

    если перед классом ставлю

    error_reporting(E_ALL);
    ошибка уходит .. выводится только корректный результат

    так это ошибка или нет ^_^
    при переводе гуглем так и не понял чего от меня хотят этими злыми словами и куда меня послали.
    PS в классы только начинаю играться .
     
  2. shelestov

    shelestov Активный пользователь

    С нами с:
    25 авг 2011
    Сообщения:
    148
    Симпатии:
    0
    Адрес:
    Россия, Арзамас
    Само название как бы намекает.
    Strict standard - строгий стандарт.

    В E_ALL они не входят.

    По умолчанию в конфиге E_STRICTS должны быть отключены.
    Для включения надо:
    error_reporting(E_ALL | E_STRICT);
     
  3. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    вот я и об этом - строгий стандарт - а как избавиться от ошибок и что их вызывает .. я не много не понимаю этого почемуто.

    не люблю я когдав коде в момент написания какието ошибки
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тут же написано
     
  5. shelestov

    shelestov Активный пользователь

    С нами с:
    25 авг 2011
    Сообщения:
    148
    Симпатии:
    0
    Адрес:
    Россия, Арзамас
    Ну там же на непонятном языке написано :)

    Вообще лучше не включать STRICT ошибки, т.к. подключение любой сторонней библиотеки будет привносить кучу гемороя.
    Если хочется 90% сторонних либ переписывать, тогда вперед :)
     
  6. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    класс main Я пишу - туда просто выношу основные весчи которые использую

    если честно - правда - я не понимаю смысла фразы которую он пишет

    не статический метод не должен быть вызван статически
    пардон а как же его вызывать тогда ?
    main->autocomplite() ведь не вызовешь ..

    я понимаю что можно просто отключить вывод показа ошибки - но мне хочется разобраться с тем что ее вызывает
    PS сторонние классы не использую- все свое родное =) по крайней мере пока.
     
  7. shelestov

    shelestov Активный пользователь

    С нами с:
    25 авг 2011
    Сообщения:
    148
    Симпатии:
    0
    Адрес:
    Россия, Арзамас
    Посмотрите в класс main. Я уверен что метод autocomlite не объявлен как static.
    Ну а если он явно не объявлен статическим, он считается динамическим!

    Легко!
    Код (Text):
    1. $m = new main();
    2. $m->autocomplite();
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    так написано же, ты перевел. что непонятно? нехорошо применять статический вызов к нестатическому методу. сейчас стало понятней?

    E_ALL не включает в себя E_STRICT в некоторых версиях PHP. поэтому, если хочешь получать все предупреждения, делай -1 это единички во всех битах, будет работать во всех версиях.

    Добавлено спустя 3 минуты 33 секунды:
    ну как дети малые! сказал "а", скажи "б": ну и КАК вызываются нестатические методы? вызови как надо. или сделай метод статическим.
     
  9. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    огромное спасибо за мудрые мысли =) кажется мне надо поглубже изучить классы.. я их раньше не использовал никогда .. а сейчас приходится.