2017-02-22 20 views
0

У меня проблема с классом PHP и функцией.PHP Класс и функция return

Мой файл класса:

<?php 
class EF_IP{ 

public function ip_adresa(){ 

    // dobivanje IP adrese 
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) { 
     $ip = $_SERVER['HTTP_CLIENT_IP']; 
     return $ip; 
     } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
      $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
      return $ip; 
       } else { 
        $ip = $_SERVER['REMOTE_ADDR']; 
        return $ip; 
     } 
    } 
} 
?> 

И я звонить из других PHP файла:

EF_IP::ip_adresa(); 
echo $ip; 

И я получаю ошибку:

Strict Standards: Non-static method EF_IP::ip_adresa() should not be called statically 

Что я должен сделать?

+1

Изменение 'public function' на' public static function' –

ответ

2

Вы можете сделать вашу функцию STATIC или экземпляр класса первым:

class MyClass { 
    public static function SomeFunction() {} 
    public function someOtherFunction() {} 
} 

Затем вы называете так:

MyClass::SomeFunction() 
$class = new MyClass(); 
$class->someOtherFunction(); 
1

Вызов вашей функции не статический:

$ef_ip = new EF_IP(); 
$ip = $ef_ip->ip_adresa(); 
echo $ip; 

или вы делаете вашу функцию статической:

public static function ip_adresa(){ 
// your code 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^