Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Should be compatible with в php7
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Should be compatible with в php7

Страниц (1): [1]
 

1. lexus1990 - 24 Июля, 2016 - 14:53:15 - перейти к сообщению
Кто-нибудь знает почему php 5 пропускал следующую конструкцию:

PHP:
скопировать код в буфер обмена
  1.  
  2. namespace common\auth;
  3.  
  4. class OAuthClient extends \OAuthClient
  5. {
  6. public static function makeResourceRequest(OAuthClientState $cs, $request_url, $post_params) {}
  7. }


PHP:
скопировать код в буфер обмена
  1. class OAuthClient
  2. {
  3. public static function makeResourceRequest(OAuthClientState $cs, $request_url, $post_params) {}
  4. }


PHP:
скопировать код в буфер обмена
  1. namespace common\auth;
  2.  
  3. class OAuthClientState extends \OAuthClientState{}

PHP:
скопировать код в буфер обмена
  1.  
  2. class OAuthClientState{}
  3.  


А php 7 нет, и ругается на makeResourceRequest should be compatible with makeResourceRequest() из родительского класса.
При этом класс OAuthClientState из namespace common\auth extends от \OAuthClientState;
Получается что я не могу в extends OAuthClient ужесточить требование к OAuthClientState и принимать только определенный его extends?
2. Fart - 27 Июля, 2016 - 22:03:59 - перейти к сообщению
покажи оригинал классов и их namespace

че то смотрю и в каждой строчке одинаковые имена вижу
3. lexus1990 - 27 Июля, 2016 - 23:03:39 - перейти к сообщению
Fart пишет:
покажи оригинал классов и их namespace

че то смотрю и в каждой строчке одинаковые имена вижу


Они и есть с одинаковыми именами. Лежат в разных папках с разными неймспейсами. Мне коллеги подсказали, что вероятнее всего php 5 не проверят сигнатуры статических методов

 

Powered by ExBB FM 1.0 RC1