За последние 24 часа нас посетили 42473 программиста и 1816 роботов. Сейчас ищут 835 программистов ...

Новый вид построения класса php 7.1x7.2

Тема в разделе "PHP для новичков", создана пользователем biryukovm, 18 фев 2018.

  1. biryukovm

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

    С нами с:
    15 окт 2015
    Сообщения:
    54
    Симпатии:
    1
    Всем привет может кто значет как надо сейчас писать классы
    Я то я что то не совсем пойму. Я поставил PHP 7.1 и он пишет что метод устарел а что именно не знаю "Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Browser has a deprecated constructor in function_user_inform.phpon line 2"

    Вот образец кода с файла подскажите как правильно оформить (я его сократил не вместился сократил только функции к ним он не придерается)
    PHP:
    1.  
    2.     class Browser {
    3.         private $_agent = '';
    4.         private $_browser_name = '';
    5.         private $_version = '';
    6.         private $_platform = '';
    7.         private $_os = '';
    8.         private $_is_aol = false;
    9.         private $_is_mobile = false;
    10.         private $_is_robot = false;
    11.         private $_aol_version = '';
    12.  
    13.         const BROWSER_UNKNOWN = 'unknown';
    14.         const VERSION_UNKNOWN = 'unknown';
    15.  
    16.         const BROWSER_OPERA = 'Opera';                            // http://www.opera.com/
    17.         const BROWSER_OPERA_MINI = 'Opera Mini';                  // http://www.opera.com/mini/
    18.         const BROWSER_WEBTV = 'WebTV';                            // http://www.webtv.net/pc/
    19.         const BROWSER_IE = 'Internet Explorer';                   // http://www.microsoft.com/ie/
    20.         const BROWSER_POCKET_IE = 'Pocket Internet Explorer';     // http://en.wikipedia.org/wiki/Internet_Explorer_Mobile
    21.         const BROWSER_KONQUEROR = 'Konqueror';                    // http://www.konqueror.org/
    22.         const BROWSER_ICAB = 'iCab';                              // http://www.icab.de/
    23.         const BROWSER_OMNIWEB = 'OmniWeb';                        // http://www.omnigroup.com/applications/omniweb/
    24.         const BROWSER_FIREBIRD = 'Firebird';                      // http://www.ibphoenix.com/
    25.         const BROWSER_FIREFOX = 'Firefox';                        // http://www.mozilla.com/en-US/firefox/firefox.html
    26.         const BROWSER_ICEWEASEL = 'Iceweasel';                    // http://www.geticeweasel.org/
    27.         const BROWSER_SHIRETOKO = 'Shiretoko';                    // http://wiki.mozilla.org/Projects/shiretoko
    28.         const BROWSER_MOZILLA = 'Mozilla';                        // http://www.mozilla.com/en-US/
    29.         const BROWSER_AMAYA = 'Amaya';                            // http://www.w3.org/Amaya/
    30.         const BROWSER_LYNX = 'Lynx';                              // http://en.wikipedia.org/wiki/Lynx
    31.         const BROWSER_SAFARI = 'Safari';                          // http://apple.com
    32.         const BROWSER_IPHONE = 'iPhone';                          // http://apple.com
    33.         const BROWSER_IPOD = 'iPod';                              // http://apple.com
    34.         const BROWSER_IPAD = 'iPad';                              // http://apple.com
    35.         const BROWSER_CHROME = 'Chrome';                          // http://www.google.com/chrome
    36.         const BROWSER_ANDROID = 'Android';                        // http://www.android.com/
    37.         const BROWSER_GOOGLEBOT = 'GoogleBot';                    // http://en.wikipedia.org/wiki/Googlebot
    38.         const BROWSER_SLURP = 'Yahoo! Slurp';                     // http://en.wikipedia.org/wiki/Yahoo!_Slurp
    39.         const BROWSER_W3CVALIDATOR = 'W3C Validator';             // http://validator.w3.org/
    40.         const BROWSER_BLACKBERRY = 'BlackBerry';                  // http://www.blackberry.com/
    41.         const BROWSER_ICECAT = 'IceCat';                          // http://en.wikipedia.org/wiki/GNU_IceCat
    42.         const BROWSER_NOKIA_S60 = 'Nokia S60 OSS Browser';        // http://en.wikipedia.org/wiki/Web_Browser_for_S60
    43.         const BROWSER_NOKIA = 'Nokia Browser';                    // * all other WAP-based browsers on the Nokia Platform
    44.         const BROWSER_MSN = 'MSN Browser';                        // http://explorer.msn.com/
    45.         const BROWSER_MSNBOT = 'MSN Bot';                         // http://search.msn.com/msnbot.htm
    46.                                                                   // http://en.wikipedia.org/wiki/Msnbot  (used for Bing as well)
    47.        
    48.         const BROWSER_NETSCAPE_NAVIGATOR = 'Netscape Navigator';  // http://browser.netscape.com/ (DEPRECATED)
    49.         const BROWSER_GALEON = 'Galeon';                          // http://galeon.sourceforge.net/ (DEPRECATED)
    50.         const BROWSER_NETPOSITIVE = 'NetPositive';                // http://en.wikipedia.org/wiki/NetPositive (DEPRECATED)
    51.         const BROWSER_PHOENIX = 'Phoenix';                        // http://en.wikipedia.org/wiki/History_of_Mozilla_Firefox (DEPRECATED)
    52.  
    53.         const PLATFORM_UNKNOWN = 'unknown';
    54.         const PLATFORM_WINDOWS = 'Windows';
    55.         const PLATFORM_WINDOWS_CE = 'Windows CE';
    56.         const PLATFORM_APPLE = 'Apple';
    57.         const PLATFORM_LINUX = 'Linux';
    58.         const PLATFORM_OS2 = 'OS/2';
    59.         const PLATFORM_BEOS = 'BeOS';
    60.         const PLATFORM_IPHONE = 'iPhone';
    61.         const PLATFORM_IPOD = 'iPod';
    62.         const PLATFORM_IPAD = 'iPad';
    63.         const PLATFORM_BLACKBERRY = 'BlackBerry';
    64.         const PLATFORM_NOKIA = 'Nokia';
    65.         const PLATFORM_FREEBSD = 'FreeBSD';
    66.         const PLATFORM_OPENBSD = 'OpenBSD';
    67.         const PLATFORM_NETBSD = 'NetBSD';
    68.         const PLATFORM_SUNOS = 'SunOS';
    69.         const PLATFORM_OPENSOLARIS = 'OpenSolaris';
    70.         const PLATFORM_ANDROID = 'Android';
    71.        
    72.         const OPERATING_SYSTEM_UNKNOWN = 'unknown';
    73.  
    74.         public function Browser($useragent="") {
    75.             $this->reset();
    76.             if( $useragent != "" ) {
    77.                 $this->setUserAgent($useragent);
    78.             }
    79.             else {
    80.                 $this->determine();
    81.             }
    82.         }
    83.  
    84. И т.д
    85.  
    86.  
    87.  
    88.         /**
    89.          * Determine the user's platform (last updated 1.7)
    90.          */
    91.         protected function checkPlatform() {
    92.             if( stripos($this->_agent, 'windows') !== false ) {
    93.                 $this->_platform = self::PLATFORM_WINDOWS;
    94.             }
    95.             else if( stripos($this->_agent, 'iPad') !== false ) {
    96.                 $this->_platform = self::PLATFORM_IPAD;
    97.             }
    98.             else if( stripos($this->_agent, 'iPod') !== false ) {
    99.                 $this->_platform = self::PLATFORM_IPOD;
    100.             }
    101.             else if( stripos($this->_agent, 'iPhone') !== false ) {
    102.                 $this->_platform = self::PLATFORM_IPHONE;
    103.             }
    104.             elseif( stripos($this->_agent, 'mac') !== false ) {
    105.                 $this->_platform = self::PLATFORM_APPLE;
    106.             }
    107.             elseif( stripos($this->_agent, 'android') !== false ) {
    108.                 $this->_platform = self::PLATFORM_ANDROID;
    109.             }
    110.             elseif( stripos($this->_agent, 'linux') !== false ) {
    111.                 $this->_platform = self::PLATFORM_LINUX;
    112.             }
    113.             else if( stripos($this->_agent, 'Nokia') !== false ) {
    114.                 $this->_platform = self::PLATFORM_NOKIA;
    115.             }
    116.             else if( stripos($this->_agent, 'BlackBerry') !== false ) {
    117.                 $this->_platform = self::PLATFORM_BLACKBERRY;
    118.             }
    119.             elseif( stripos($this->_agent,'FreeBSD') !== false ) {
    120.                 $this->_platform = self::PLATFORM_FREEBSD;
    121.             }
    122.             elseif( stripos($this->_agent,'OpenBSD') !== false ) {
    123.                 $this->_platform = self::PLATFORM_OPENBSD;
    124.             }
    125.             elseif( stripos($this->_agent,'NetBSD') !== false ) {
    126.                 $this->_platform = self::PLATFORM_NETBSD;
    127.             }
    128.             elseif( stripos($this->_agent, 'OpenSolaris') !== false ) {
    129.                 $this->_platform = self::PLATFORM_OPENSOLARIS;
    130.             }
    131.             elseif( stripos($this->_agent, 'SunOS') !== false ) {
    132.                 $this->_platform = self::PLATFORM_SUNOS;
    133.             }
    134.             elseif( stripos($this->_agent, 'OS\/2') !== false ) {
    135.                 $this->_platform = self::PLATFORM_OS2;
    136.             }
    137.             elseif( stripos($this->_agent, 'BeOS') !== false ) {
    138.                 $this->_platform = self::PLATFORM_BEOS;
    139.             }
    140.             elseif( stripos($this->_agent, 'win') !== false ) {
    141.                 $this->_platform = self::PLATFORM_WINDOWS;
    142.             }
    143.  
    144.         }
    145.     }
    Также нашел это но не совсем понял что к чему https://php.ru/manual/migration70.deprecated.html
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    В качестве конструктора надо использовать не метод, одноименный классу, а метод __construct(), вот и все.
     
    Алекс8 нравится это.
  3. biryukovm

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

    С нами с:
    15 окт 2015
    Сообщения:
    54
    Симпатии:
    1
    Так чтоли ? не совсем понял

    Код (Text):
    1.  
    2. class Browser{
    3. private $_os = '';
    4. private $_is_aol = false;
    5. private $_is_mobile = false;
    6. private $_is_robot = false;
    7. private $_aol_version = '';
    8.  
    9.  
    10. function __construct() {
    11. const BROWSER_UNKNOWN = 'unknown';
    12. const VERSION_UNKNOWN = 'unknown';
    13. const BROWSER_OPERA = 'Opera';                          
    14. const BROWSER_OPERA_MINI = 'Opera Mini';
    15. }
    16.  
    17. }
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    @biryukovm что такое function Browser()?
     
  5. ElisDN

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

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    Просто переименовать:

    PHP:
    1. public function Browser($useragent = '')
    на:

    PHP:
    1. public function __construct($useragent = '')
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.817
    Симпатии:
    1.333
    Адрес:
    Лень
    biryukovm нравится это.
  7. biryukovm

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

    С нами с:
    15 окт 2015
    Сообщения:
    54
    Симпатии:
    1