php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #32073 Overloading for static methods and properties
Submitted: 2005-02-23 01:58 UTC Modified: 2014-05-08 18:00 UTC
Votes:13
Avg. Score:4.4 ± 0.9
Reproduced:10 of 12 (83.3%)
Same Version:4 (40.0%)
Same OS:5 (50.0%)
From: joh at deworks dot net Assigned:
Status: Duplicate Package: Scripting Engine problem
PHP Version: 5CVS-2005-02-23 (dev) OS: Linux
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: joh at deworks dot net
New email:
PHP Version: OS:

 

 [2005-02-23 01:58 UTC] joh at deworks dot net
Description:
------------
Currently, it is only possible to overload method calls and member accesses of an object. The use of static classes with static methods and members is a good way to organize different parts of an application. Therefore, it would've be convenient to be able to overload static method calls and member accesses as you can do on objects. As a static class member/method cannot have the same name as a normal class member/method, this should be possible.

This would give the developer finer controll over his/her static libraries.

In the provided example, the developer could restrict access to the static member Foo::$readonly.

Reproduce code:
---------------
<?php
class Foo {

	protected static $readonly = "Read-only member";

	public static function __get($name)
	{
		switch ($name) {
			case 'readonly':
				return self::$readonly;
				break;
			default:
				break;
		}
	}
}

echo Foo::$readonly;
Foo::$readonly = "Not possible.";
?>

Expected result:
----------------
Read-only member

Actual result:
--------------
Fatal error: Cannot access protected property Foo::$readonly ...

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2005-04-12 14:48 UTC] ghostwwinside at gmx dot net
I think the overloading documentation is a bit unclear,
beacause it mention "Class members" and do not restrict
it to "Instance members".
 [2014-05-08 18:00 UTC] levim@php.net
-Status: Open +Status: Duplicate -Package: Feature/Change Request +Package: Scripting Engine problem
 [2014-05-08 18:00 UTC] levim@php.net
This is a duplicate of 45002; though that bug is much newer than this one it has gotten significantly more feedback.
 [2014-05-08 18:01 UTC] levim@php.net
Duplicate of bug 45002 (forgot to prefix with bug to get proper linking)
 
PHP Copyright © 2001-2017 The PHP Group
All rights reserved.
Last updated: Sun Nov 19 01:31:42 2017 UTC