名为 `$something` 的变量是否可以被 `someting` 引用,即没有美元符号?
Can a variable named as `$something` be referred to by `someting`, that is without the dollar sign?
我正在检查别人写的一些 PHP 代码,他们基本上命名了一个变量 $text
:
protected $text = null;
然后在同一个文件中,他们在没有 $
符号的情况下引用它:
$this->text[$name] = new Text($age, $house);
- 我有点好奇。这可能吗?可以命名一个变量
$
与某个单词连接,仅被引用
$
? 以外的标识符的一部分
- 如果是,它是否暗示了一些特殊的东西或者它是一个简单的参考
到变量?
PS:我不认为代码有问题,因为它有效 =s
这段代码没有错,因为它是用面向对象编写的PHP。
当您在 php 对象中声明属性时,在这种情况下 $text
,您稍后可以在相同的 class 中将该属性称为 $this->text
.
这就是您在面向对象代码中访问变量(通常称为 属性)的方式。
class MyClass {
public $name = 'Billy Bob';
public function printName() {
echo $this->name;
}
}
在这个例子中$this->name
指的是$name
变量,属于class的"this"实例(一个class的实例被称为对象).
class MyClass { /* ... */ } // This is a class definition
$obj = new MyClass(); // This is an instance of the class, an object
我正在检查别人写的一些 PHP 代码,他们基本上命名了一个变量 $text
:
protected $text = null;
然后在同一个文件中,他们在没有 $
符号的情况下引用它:
$this->text[$name] = new Text($age, $house);
- 我有点好奇。这可能吗?可以命名一个变量
$
与某个单词连接,仅被引用$
? 以外的标识符的一部分
- 如果是,它是否暗示了一些特殊的东西或者它是一个简单的参考 到变量?
PS:我不认为代码有问题,因为它有效 =s
这段代码没有错,因为它是用面向对象编写的PHP。
当您在 php 对象中声明属性时,在这种情况下 $text
,您稍后可以在相同的 class 中将该属性称为 $this->text
.
这就是您在面向对象代码中访问变量(通常称为 属性)的方式。
class MyClass {
public $name = 'Billy Bob';
public function printName() {
echo $this->name;
}
}
在这个例子中$this->name
指的是$name
变量,属于class的"this"实例(一个class的实例被称为对象).
class MyClass { /* ... */ } // This is a class definition
$obj = new MyClass(); // This is an instance of the class, an object