我知道为什么我不能在没有任何东西的情况下定义类中的变量(公共、私有、保护)
为什么会出现语法错误?
class myclass {
$var = 'anythig';
}
但这没关系:
class myclass {
function test() { // code here }
}
最后,为什么我可以在函数中定义一个没有任何内容的var?
class myclass {
function test() {
$var = 'anything'; // it has not anythig (public, privare, protect)
}
}
当你使用任何一种编程语言时,你都应该知道规则,否则,程序的行为会变得奇怪;例如,在您的案例中,在类中声明函数时,省略可见性关键字意味着函数将具有public
可见性。
关于属性可见性:
类属性必须定义为
public
、private
或protected
如果如果使用var
声明,则该属性将被定义为public
关于方法可见性:
类方法可以定义为
public
、private
或protected
。定义了在没有任何显式可见性关键字的情况下声明的方法作为CCD_ 10
最后,关于定义变量,我认为您需要了解变量范围。
根据请求,关于以上关于
static
与private
的评论:
类成员的static
ness旨在处理物质的生存期(无论类的任何实例是否存在,物质都存在),而private
ness是关于物质的可见性的(例如:当存在的物质具有private
可见性时,无法访问它。)
这两者是不同的概念,并不是相互排斥的(你可以把它们放在一起使用。)把这些概念混合在一起,让我相信你迫切需要阅读一些面向对象的材料。