1--TEST--
2Implementing abstract property hooks
3--FILE--
4<?php
5
6abstract class A {
7    public abstract $prop1 {
8        get;
9        set { echo __METHOD__, "\n"; }
10    }
11    public abstract $prop2 {
12        get { echo __METHOD__, "\n"; }
13        set;
14    }
15    public abstract $prop3 { get; set; }
16}
17
18class B extends A {
19    public $prop1 {
20        get { echo __METHOD__, "\n"; }
21    }
22    public $prop2 {
23        set { echo __METHOD__, "\n"; }
24    }
25    public $prop3;
26}
27
28$b = new B;
29$b->prop1;
30$b->prop1 = 1;
31$b->prop2;
32$b->prop2 = 1;
33$b->prop3;
34$b->prop3 = 1;
35
36?>
37--EXPECT--
38B::$prop1::get
39A::$prop1::set
40A::$prop2::get
41B::$prop2::set
42