#42021 [Bgs]: Intance of same class, access directly private vars, dont using __get() method

2007-07-31 Thread o_gangrel at hotmail dot com
 ID:   42021
 User updated by:  o_gangrel at hotmail dot com
 Reported By:  o_gangrel at hotmail dot com
 Status:   Bogus
 Bug Type: Scripting Engine problem
 Operating System: Linux
 PHP Version:  5.2.3
 New Comment:

Unfortunately an other bug I report, and have no attencion... and other
will (may be from the PHP crew) report and solve the bug.

Well... every thing I report is a bogus... then I will just use de PHP
and not report, only pray, to the bogus in future have solved.

Good luck.


Previous Comments:


[2007-07-18 15:33:52] o_gangrel at hotmail dot com

Sou you mean, when I have an instace of the class itself, the method
__get() will not called? It not sounds good to mee! And the variable is
a PRIVATE variable, and it can't be accessed only becouse the class is
the same and the instace isn't.



[2007-07-17 22:36:12] [EMAIL PROTECTED]

Should have been restricted instead of rejected...



[2007-07-17 22:12:43] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

The visibility modifiers work on a per class basis and is not rejected
to the same object.



[2007-07-17 21:17:22] o_gangrel at hotmail dot com

Description:

In a class, if instance this same class inside, the method __get() does
not is called.

Reproduce code:
---
class class_test {

private $sub_classes = array();
private $foo = bar; // Default value

public function __construct($n = 0)
{
for($i = 0; $i  $n; $i++) {
$this-sub_classes[] = new class_test(); // New sub 
instaces
}
if($n  0) {
$this-foo = $n; // Change the default value on main 
instace
}
}

public function __get($name)
{
switch($name) {
case 'foo':
return '__get(foo) = '.$this-foo; // Getting 
the variable,
changing the value
break;

case 'subs':
$subs = '$this-foo = '.$this-foo.\n; // 
Value of var on main
instace
foreach($this-sub_classes as $key = 
$sub_class) {
$subs.= \$this-sub_classes[$key]-foo 
=
.$this-sub_classes[$key]-foo.\n; // The value of variable on each
sub instace
}
return $subs;
break;
}

return false;
}
}

$test = new class_test(2); // Create the main instace, with 2 sub
instaces

echo $test-subs; // Show the variables

Expected result:

$this-foo = 2
$this-sub_classes[0]-foo = __get(foo) = bar
$this-sub_classes[1]-foo = __get(foo) = bar


Actual result:
--
$this-foo = 2
$this-sub_classes[0]-foo = bar
$this-sub_classes[1]-foo = bar






-- 
Edit this bug report at http://bugs.php.net/?id=42021edit=1


#42021 [Bgs]: Intance of same class, access directly private vars, dont using __get() method

2007-07-18 Thread o_gangrel at hotmail dot com
 ID:   42021
 User updated by:  o_gangrel at hotmail dot com
 Reported By:  o_gangrel at hotmail dot com
 Status:   Bogus
 Bug Type: Scripting Engine problem
 Operating System: Linux
 PHP Version:  5.2.3
 New Comment:

Sou you mean, when I have an instace of the class itself, the method
__get() will not called? It not sounds good to mee! And the variable is
a PRIVATE variable, and it can't be accessed only becouse the class is
the same and the instace isn't.


Previous Comments:


[2007-07-17 22:36:12] [EMAIL PROTECTED]

Should have been restricted instead of rejected...



[2007-07-17 22:12:43] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

The visibility modifiers work on a per class basis and is not rejected
to the same object.



[2007-07-17 21:17:22] o_gangrel at hotmail dot com

Description:

In a class, if instance this same class inside, the method __get() does
not is called.

Reproduce code:
---
class class_test {

private $sub_classes = array();
private $foo = bar; // Default value

public function __construct($n = 0)
{
for($i = 0; $i  $n; $i++) {
$this-sub_classes[] = new class_test(); // New sub 
instaces
}
if($n  0) {
$this-foo = $n; // Change the default value on main 
instace
}
}

public function __get($name)
{
switch($name) {
case 'foo':
return '__get(foo) = '.$this-foo; // Getting 
the variable,
changing the value
break;

case 'subs':
$subs = '$this-foo = '.$this-foo.\n; // 
Value of var on main
instace
foreach($this-sub_classes as $key = 
$sub_class) {
$subs.= \$this-sub_classes[$key]-foo 
=
.$this-sub_classes[$key]-foo.\n; // The value of variable on each
sub instace
}
return $subs;
break;
}

return false;
}
}

$test = new class_test(2); // Create the main instace, with 2 sub
instaces

echo $test-subs; // Show the variables

Expected result:

$this-foo = 2
$this-sub_classes[0]-foo = __get(foo) = bar
$this-sub_classes[1]-foo = __get(foo) = bar


Actual result:
--
$this-foo = 2
$this-sub_classes[0]-foo = bar
$this-sub_classes[1]-foo = bar






-- 
Edit this bug report at http://bugs.php.net/?id=42021edit=1


#42021 [Bgs]: Intance of same class, access directly private vars, dont using __get() method

2007-07-17 Thread johannes
 ID:   42021
 Updated by:   [EMAIL PROTECTED]
 Reported By:  o_gangrel at hotmail dot com
 Status:   Bogus
 Bug Type: Scripting Engine problem
 Operating System: Linux
 PHP Version:  5.2.3
 New Comment:

Should have been restricted instead of rejected...


Previous Comments:


[2007-07-17 22:12:43] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

The visibility modifiers work on a per class basis and is not rejected
to the same object.



[2007-07-17 21:17:22] o_gangrel at hotmail dot com

Description:

In a class, if instance this same class inside, the method __get() does
not is called.

Reproduce code:
---
class class_test {

private $sub_classes = array();
private $foo = bar; // Default value

public function __construct($n = 0)
{
for($i = 0; $i  $n; $i++) {
$this-sub_classes[] = new class_test(); // New sub 
instaces
}
if($n  0) {
$this-foo = $n; // Change the default value on main 
instace
}
}

public function __get($name)
{
switch($name) {
case 'foo':
return '__get(foo) = '.$this-foo; // Getting 
the variable,
changing the value
break;

case 'subs':
$subs = '$this-foo = '.$this-foo.\n; // 
Value of var on main
instace
foreach($this-sub_classes as $key = 
$sub_class) {
$subs.= \$this-sub_classes[$key]-foo 
=
.$this-sub_classes[$key]-foo.\n; // The value of variable on each
sub instace
}
return $subs;
break;
}

return false;
}
}

$test = new class_test(2); // Create the main instace, with 2 sub
instaces

echo $test-subs; // Show the variables

Expected result:

$this-foo = 2
$this-sub_classes[0]-foo = __get(foo) = bar
$this-sub_classes[1]-foo = __get(foo) = bar


Actual result:
--
$this-foo = 2
$this-sub_classes[0]-foo = bar
$this-sub_classes[1]-foo = bar






-- 
Edit this bug report at http://bugs.php.net/?id=42021edit=1