美元符号在 PHP 中是什么意思?[已关闭]

2022-08-30 21:03:51

美元符号在 PHP 中是什么意思?我有这个代码:

<?php
  class Building {
    public $number_of_floors = 5;
    private $color;

    public function __construct($paint) {
      $this->color = $paint;
    }

    public function describe() {
      printf('This building has %d floors. It is %s in color.', 
        $this->number_of_floors, 
        $this->color
      );
    }
  }

  $bldgA = new Building('red');

  $bldgA->describe();
?>

似乎指示一个变量,如:$

$number_of_floors
$color

但是当我看到以下内容时,我会感到困惑:

$bldgA->describe();
$bldgA->number_of_floors;

为什么在这些变量之前没有美元符号?


答案 1

你是对的,$ 是变量。但是在类实例中,您不再在属性上使用$,因为PHP会解释,这可能会导致您出错。例如,如果您使用

$bldgA->$number_of_floors;

这不会返回对象的 $number_of_floors 属性,但 PHP 将首先查看 $number_of_floors 的值,例如 3,所以前一行将是

$bldgA->3;

这会让你产生一个错误


答案 2

$是在 PHP 中引用变量的方式。PHP中的变量是动态类型的,这意味着它们的类型是由分配给它们的内容决定的。这是PHP手册中有关变量的页面。

$a = “这是一个字符串”;

$b = 1;这是一个整数

$bldgA = 新建筑('红色');bldgA 是类 Building 的一个变量和一个对象(也称为实例)。

$bldgA->描述符();这调用 describe(),它是类 Building 的成员函数(请记住,$bldgA被声明为类 Building 的对象)

$bldgA->number_of_floors;number_of_floors是类 Building 的数据成员。您可以将其视为类中的变量,但由于它是具有固定名称的类的一部分,因此您不会使用 .$


推荐