我有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
我需要做什么?
答案 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
}