ID: 37814
Updated by: [EMAIL PROTECTED]
Reported By: henke dot andersson at comhem dot se
-Status: Open
+Status: Wont fix
Bug Type: Feature/Change Request
-Operating System: Linux Redhat 9
+Operating System: *
-PHP Version: 6CVS-2006-06-15 (CVS)
+PHP Version: *
New Comment:
We decided against those complex features.
Previous Comments:
------------------------------------------------------------------------
[2007-08-06 22:29:49] michael at chunkycow dot com dot au
The whole C++ friends thing is a mess, use an interface between your
super friendly classes and simply don`t use it if the classes aren`t
joined at the hip, this would even help to keep nice low coupling and
aid re-use.
Private inner classes have some merit but are not a cure for common
sense.
------------------------------------------------------------------------
[2006-06-15 10:33:27] henke dot andersson at comhem dot se
Description:
------------
Php should have a friend structure for classes, like c++.
That way some normaly private things can be used by selected other
classes and functions.
An alternative would be to do it like Java with inner classes, but
personaly I think that while inner classes could be usefull in php,
friend classes should also exist like in c++.
Reproduce code:
---------------
<?php
//my suggestion for the syntax
class A {
static function callB(B $b) {
$b->privatefunction();
}
}
class B {
friend class A;
friend function C;
private function privatefunction() {
echo 'privatefunction!';
}
}
function C(B $b) {
$b->privatefunction();
}
$b=new B();
A::callB($b);
C($b);
Expected result:
----------------
Class A and function C should be able to call B::privatefunction.
Actual result:
--------------
Since this functionality doesn't exist the code wont even compile.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=37814&edit=1