PHP类和函数返回

时间:2017-02-22 14:54:20

标签: php function class

我有PHP类和函数的问题。

我的班级文件是:

<?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

我需要做什么?

2 个答案:

答案 0 :(得分:2)

您可以将函数设置为STATIC或首先实例化该类:

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

然后你这样打电话:

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

答案 1 :(得分:1)

不要静态调用您的函数:

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

或者你的功能是静态的:

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