php OOP类变量vs对象变量

sal*_*ane 2 php oop

在php中创建一个类时,这两者之间有什么区别:

class Search 

    function __construct()
    {

        $this->variable1= 1234;      

    }
}
Run Code Online (Sandbox Code Playgroud)

class Search 

    private $variable1;

$variable1=1234;

    function __construct()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

如果我需要跨越不同的方法访问一个值,它会使我选择哪种方法有什么不同?

谢谢

mar*_*rio 5

对象和类变量之间的区别在于您可以如何访问它们.

  • 对象变量: $obj->var
  • 类变量: class::$var

你的班级定义应该是:

class Search {
    static $variable = 2;   // only accessible as Search::$variable
}
Run Code Online (Sandbox Code Playgroud)

与:

class Search2 {
    var $variable = "object_prop";
}
Run Code Online (Sandbox Code Playgroud)

无论您使用varpublicprivate访问修饰符是不是什么使一个变量的对象属性.决定因素是它没有被声明static,因为这会使它只能作为类变量访问.