Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否有一个术语既指类变量又指实例变量,而不是指方法中定义的变量?_Php_Oop_Terminology - Fatal编程技术网

Php 是否有一个术语既指类变量又指实例变量,而不是指方法中定义的变量?

Php 是否有一个术语既指类变量又指实例变量,而不是指方法中定义的变量?,php,oop,terminology,Php,Oop,Terminology,正确的术语既指$instance\u variable又指$class\u variable,而不是指$method\u variable class { public $instance_variable; static $class_variable; function do_something() { $method_variable; } } 类范围变量有意义吗?我将它们称为“属性”,因为PHP缺少其他地方定义的属性概念(C#) 编辑,此外,属性是P

正确的术语既指
$instance\u variable
又指
$class\u variable
,而不是指
$method\u variable

class {
   public $instance_variable;
   static $class_variable;
   function do_something() {
      $method_variable;
   }
}
类范围变量
有意义吗?

我将它们称为“属性”,因为PHP缺少其他地方定义的属性概念(C#)

编辑,此外,属性是PHP手册中定义的术语:

属性

类成员变量称为“属性”。您也可能会看到它们使用其他术语,如“属性”或“字段”,但在本参考中,我们将使用“属性”。它们是通过使用关键字public、protected或private中的一个来定义的,后跟一个普通变量声明。该声明可能包含一个初始化,但该初始化必须是一个常量值——也就是说,它必须能够在编译时进行计算,并且必须不依赖于运行时信息才能进行计算

文档继续在该定义中包含
静态
声明

此外,“字段”或更一般的“成员”就足够了,尽管成员通常包括方法定义和其他不专门用于存储的构造

从C#上的MSDN(我知道这被标记为PHP,但是…)

类和结构具有表示其数据和行为的成员。这些成员包括:

字段是被视为类的一部分的对象的实例,通常保存类数据。例如,calendar类可能有一个包含当前日期的字段

属性是类上的方法,可以像访问该类上的字段一样进行访问。属性可以为类字段提供保护,以防止在对象不知情的情况下对其进行更改


我所知道的术语中没有一个是指两者。“类作用域”对我来说没有意义,因为类的作用域是整个程序,对我来说,它将排除类实例变量,而仅仅“属性”就足够了;这将排除方法局部变量,但同时包括实例和静态变量。但请注意,由于静态变量和实例变量在语义上存在巨大差异,我认为人们不会经常笼统地引用它们。@Bracketworks,听起来不错。你应该写下这个作为答案。