Что означает знак доллара в PHP?
Что означает знак доллара в 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
Вы правы, $для переменной. Но в экземпляре класса вы больше не используете $properties для свойств, потому что PHP будет интерпретироваться, и это может привести к ошибке. Например, если вы используете
$bldgA->$number_of_floors;
это не вернет свойство $number_of_floors объекта, но PHP сначала рассмотрит значение $number_of_floors, скажем, например 3, поэтому предыдущая строка будет
$bldgA->3;
И это даст вам ошибку
Ответ 2
$
- это способ обращения к переменным в PHP. Переменные в PHP динамически типизируются, что означает, что их тип определяется назначенным им. Здесь страница о variables из руководства по PHP.
$a = "Это строка";
$b = 1;//Это int
$bldgA = новое здание ('red');//bldgA - это переменная и объект (он же экземпляр) класса Building.
$bldgA- > описывают();//Это вызывает describe(), который является функцией-членом класса Building (помните, что $bldgA был объявлен как объект класса Building)
$bldgA- > number_of_floors;//number_of_floors - член данных класса Building. Вы можете рассматривать это как переменную внутри класса, но поскольку она является частью класса с фиксированным именем, вы не ссылаетесь на него с помощью $
.
Ответ 3
$bldgA = new Building('red');
в этом случае $bldgA является объектом.
$bldgA->describe();
вызывает функцию describe() из объекта $bldgA
$bldgA->number_of_floors;
присоединяет переменную number_of_floors от объекта $bldgA
но вы действительно должны взглянуть на php.net/manual/en/language.oop5.basic.php
Ответ 4
Да, эта переменная с присвоенным ему экземпляром класса. И когда он объект, то вы вызываете/получаете аргументы так. Читайте об ООП на PHP, пожалуйста. Это может быть очень удобно для вас и помочь вам понять, как это работает:)
Ответ 5
$bldgA является переменной для класса Building
чтобы вы могли получить доступ к функции класса с помощью $Building- > function_name
пример:
$foo = $bldgA->describe();
$number_of_floors - это переменная внутри класса
Ответ 6
$bldgA->number_of_floors;
Не вызывает локальную переменную, но свойство (как локальную переменную часть определения класса).
Однако можно вызвать $bldgA->$property_name;
, где $property_name - это имя свойства, которое вы хотите вызвать. Это называется переменными переменными и чем-то, что вы, вероятно, должны изучить, после того как вы поняли основы ООП.
Ответ 7
При написании $bldgA = new Building('red');
вы назначаете переменную $bldgA
вновь созданный объект класса Building
. Объекты - это возможный тип переменных.
В общем случае, когда вы видите $
, он всегда ссылается на переменные. $bldgA->number_of_floors;
следует читать как: получить доступ к свойству объекта в переменной $bldgA