1. 云栖社区>
  2. PHP教程>
  3. 正文

为什么 PHP 中 this 和 self 访问变量的写法不一样?

作者:用户 来源:互联网 时间:2017-12-01 10:12:16

php变量访问写法Self为什么

为什么 PHP 中 this 和 self 访问变量的写法不一样? - 摘要: 本文讲的是为什么 PHP 中 this 和 self 访问变量的写法不一样?, self是关键字,而$this是一个变量,表示当前对象,也就是你能直接把$this返回实现链式调用. $this->foo也是一个变量,表示当前对象里名为foo的成员. 而self::$foo表示类里面名为foo的变量. self其

self是关键字,而$this是一个变量,表示当前对象,也就是你能直接把$this返回实现链式调用.


$this->foo也是一个变量,表示当前对象里名为foo的成员.


而self::$foo表示类里面名为foo的变量.


self其实就相当于类名,parent相当于父类名,都是在类里面使用的关键字.


<?php
class foo {
const a = '类的常量'; // PHP 5.3
public static $b = '类的静态变量';
public $c = '对象的变量';
// 类的普通方法既能访问静态变量,也能访问普通变量.
// 而类的静态方法不能访问类的非静态变量和非静态方法.
public function bar() {
return array(
self::a,
self::$b,
$this->c
);
}
}
$foo = new foo();
echo foo::a. "/n"; // 类的常量
echo foo::$b . "/n"; // 类的静态变量
echo $foo->c . "/n"; // 对象的变量
var_export($foo->bar()); // 输出:

输出的内容如下:


array (
0 => '类的常量',
1 => '类的静态变量',
2 => '对象的变量',
)

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 变量 , 访问 , 写法 , Self , 为什么 ,以便于您获取更多的相关知识。