@@ -194,7 +194,8 @@ Add default value to a parameter Yes [2]_ No
194
194
Remove default value of a parameter No No
195
195
Add type hint to a parameter No No
196
196
Remove type hint of a parameter Yes [2 ]_ No
197
- Change return type Yes [2 ]_ [4 ]_ No
197
+ Change parameter type Yes [2 ]_ [4 ]_ No
198
+ Change return type Yes [2 ]_ [5 ]_ No
198
199
============================================== ============== ==============
199
200
200
201
@@ -211,7 +212,7 @@ Remove entirely No No
211
212
Make final Yes [2 ]_ No
212
213
Make abstract No No
213
214
Change name or namespace No No
214
- Change parent class Yes [5 ]_ Yes [5 ]_
215
+ Change parent class Yes [6 ]_ Yes [6 ]_
215
216
Add interface Yes Yes
216
217
Remove interface No No
217
218
**Public Properties **
@@ -237,9 +238,10 @@ Add parameter with a default value Yes [2]_ No
237
238
Remove parameter Yes [3 ]_ Yes [3 ]_
238
239
Add default value to a parameter Yes [2 ]_ No
239
240
Remove default value of a parameter No No
240
- Add type hint to a parameter Yes [6 ]_ No
241
+ Add type hint to a parameter Yes [7 ]_ No
241
242
Remove type hint of a parameter Yes [2 ]_ No
242
- Change return type Yes [2 ]_ [4 ]_ No
243
+ Change parameter type Yes [2 ]_ [4 ]_ No
244
+ Change return type Yes [2 ]_ [5 ]_ No
243
245
**Protected Methods **
244
246
Add protected method Yes Yes
245
247
Remove protected method Yes [2 ]_ No
@@ -252,7 +254,8 @@ Add default value to a parameter Yes [2]_ No
252
254
Remove default value of a parameter Yes [2 ]_ No
253
255
Add type hint to a parameter Yes [2 ]_ No
254
256
Remove type hint of a parameter Yes [2 ]_ No
255
- Change return type Yes [2 ]_ [4 ]_ No
257
+ Change parameter type Yes [2 ]_ [4 ]_ No
258
+ Change return type Yes [2 ]_ [5 ]_ No
256
259
================================================== ============== ==============
257
260
258
261
@@ -264,8 +267,22 @@ Change return type Yes [2]_ [4]_ No
264
267
265
268
.. [3 ] Only the last parameter(s) of a method may be removed.
266
269
267
- .. [4 ] The return type may only be changed to compatible types. The following
268
- type changes are allowed:
270
+ .. [4 ] The parameter type may only be changed to a compatible or less specific
271
+ type. The following type changes are allowed:
272
+
273
+ =================== ==================================================================
274
+ Original Type New Type
275
+ =================== ==================================================================
276
+ boolean any `scalar type `_ with equivalent `boolean values `_
277
+ string any `scalar type `_ or object with equivalent `string values `_
278
+ integer any `scalar type `_ with equivalent `integer values `_
279
+ float any `scalar type `_ with equivalent `float values `_
280
+ class ``<C> `` any superclass or interface of ``<C> ``
281
+ interface ``<I> `` any superinterface of ``<I> ``
282
+ =================== ==================================================================
283
+
284
+ .. [5 ] The return type may only be changed to a compatible or more specific
285
+ type. The following type changes are allowed:
269
286
270
287
=================== ==================================================================
271
288
Original Type New Type
@@ -282,10 +299,10 @@ Change return type Yes [2]_ [4]_ No
282
299
interface ``<I> `` any subinterface or implementing class of ``<I> ``
283
300
=================== ==================================================================
284
301
285
- .. [5 ] When changing the parent class, the original parent class must remain an
302
+ .. [6 ] When changing the parent class, the original parent class must remain an
286
303
ancestor of the class.
287
304
288
- .. [6 ] A type hint may only be added if passing a value with a different type
305
+ .. [7 ] A type hint may only be added if passing a value with a different type
289
306
previously generated a fatal error.
290
307
291
308
.. _scalar type : http://php.net/manual/en/function.is-scalar.php
0 commit comments