self กับ $this ต่างกันตรงที่ $this จะหมายถึง object ที่ใช้อยู่ตอนนั้น แต่ self จะหมายถึง class ที่ใช้อยู่ตอนนั้น หรือ ก็คือ $this จะใช้กับอะไรก็ตามที่ไม่ใช่ static แต่ self กับอะไรก็ตามที่เป็น static นั้นเอง เช่น
class okito {
public static $foo = “foo : “;
var $bar = “bar : “;function __construct() {
$this->bar .= “Hello<br />”;
self::$foo .= “Hi<br />”;
}public static function staticHello() {
echo self::$foo;
}function nonStaticHello() {
echo $this->bar;
}function say() {
$this->nonStaticHello();
self::staticHello();
}
}$okito = new okito();
$okito->say();
ผลลัพธ์
Hello<br /> Hi<br />
0 Comments until now.
Comment!