【问题标题】:Is there a term that refers to both class and instance variables and not variables defined in methods?是否有一个术语既指类变量又指实例变量,而不是方法中定义的变量?
【发布时间】:2013-05-06 01:55:15
【问题描述】:

正确的术语是指$instance_variable$class_variable 而不是$method_variable

class {
   public $instance_variable;
   static $class_variable;
   function do_something() {
      $method_variable;
   }
}

class scope variables 有意义吗?

【问题讨论】:

  • 我所知道的没有一个术语可以同时表示两者。 “类范围”对我来说没有意义,因为类的范围是整个程序,对我来说这将排除类实例变量
  • 也许只有“属性”就足够了;这将排除方法局部变量,但包括实例和静态变量。但请注意,由于静态变量和实例变量在语义上的巨大差异,我认为人们不会经常大量引用它们。
  • @Bracketworks,听起来不错。你应该把它写成答案。

标签: php oop terminology


【解决方案1】:

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

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

属性

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

文档继续在此定义中包含 static 声明。

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

来自 C# 上的 MSDN(我知道这被标记为 PHP 但......

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

Fields (C# Programming Guide) 字段是被视为类的一部分的对象的实例,通常保存类数据。例如,日历类可能有一个包含当前日期的字段。

Properties (C# Programming Guide) 属性是类中的方法,可以像访问该类中的字段一样访问它们。属性可以为类字段提供保护,以防止它在对象不知情的情况下被更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-27
    • 2010-10-28
    • 1970-01-01
    • 2011-02-16
    • 2020-11-01
    • 2011-08-19
    • 2015-04-29
    • 2011-05-03
    相关资源
    最近更新 更多