php中带有类的未定义属性

Posted

技术标签:

【中文标题】php中带有类的未定义属性【英文标题】:Undefined property with class in php 【发布时间】:2017-09-15 13:31:38 【问题描述】:

注意:未定义的属性:第 37 行 I:\xampp\htdocs\test.php 中的 Pub::$pub 空

我认为我做对了,但我不知道为什么我会遇到这样的问题?谁能告诉我我做错了什么,我将不胜感激。

class Pub 

    function getip()
    
        if (isset($_SERVER['HTTP_CF_CONNECTING_IP']))
            $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];

        foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR', 'HTTP_CF_CONNECTING_IP') as $key) 
        
            if (array_key_exists($key, $_SERVER) === true) 

                foreach (explode(',', $_SERVER[$key]) as $ip) 

                    if (validip($ip) !== false) 

                        return $ip;
                    
                
            
        
    

    function validip($ip)
    
        return (!preg_match("/^[0-9]1,3\.[0-9]1,3\.[0-9]1,3\.[0-9]1,3$/", $ip)) ? FALSE : TRUE;
    



$pub = new Pub;

var_dump( $pub->getip);

【问题讨论】:

var_dump( $pub->pub ); Class Pub 中没有定义pub 属性 是的,我的错误,我编辑了我的帖子,对不起,但同样的问题 您忘记在getip 之后添加()。它应该是 $pub->getip() 而不是 $pub->getip 是的,你明白了。谢谢你。我真是个疯子:(无论如何谢谢。 也看看@TVs 的回答,他发现了一个错误:) 【参考方案1】:

没有属性pub,你可能指的是$pub->getip()

这需要你改变这一行:

if (validip($ip) !== false) 

到这里:

if ($this->validip($ip) !== false) 

因为它无法在该上下文中找到 validip。

Read about the basics of OOP in PHP here.

【讨论】:

以上是关于php中带有类的未定义属性的主要内容,如果未能解决你的问题,请参考以下文章

Adobe Flash - 访问可能的未定义属性 COMPLETE

对现有类的未定义引用

Php和Sql,未定义的未定义索引[重复]

Rails 4:模型:类的未定义方法“relation_delegate_class”

PHP会话的未定义索引

PHP包含文件中的未定义变量错误[重复]