From: andreigurin at tiscali dot it
Operating system: windows xp sp2 / linux centos /
PHP version: 4.4.2
PHP Bug Type: Class/Object related
Bug description: $this visibility violated
Description:
------------
$this keyword visibility is violated if accessed from a function external
to a class. This happens in 4.xxx versions, and in 5.xxx, Tested on Window
2000, Windows Xp sp2, Linux Centos(3.7?), Red hat, and some other Linux
based systems
Reproduce code:
---------------
class Foo {
private $__prv;
public function __constructor($v) {
$this->__prv = $v;
}
public function do_something() {
bla bla bla...
hack();
}
public function prv() {
return $this->__prv;
}
}
function hack() {
$this->__prv = 'A very bad value!';
}
$foo = new Foo('A good __prv value');
$foo->do_something();
print $foo->prv();
Expected result:
----------------
Triggered error:
bla bla bla undefined variable this in file.php on line ...
Output:
A good __prv value
Actual result:
--------------
Output:
A very bad value
--
Edit bug report at http://bugs.php.net/?id=36707&edit=1
--
Try a CVS snapshot (PHP 4.4):
http://bugs.php.net/fix.php?id=36707&r=trysnapshot44
Try a CVS snapshot (PHP 5.1):
http://bugs.php.net/fix.php?id=36707&r=trysnapshot51
Try a CVS snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=36707&r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=36707&r=fixedcvs
Fixed in release:
http://bugs.php.net/fix.php?id=36707&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=36707&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=36707&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=36707&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=36707&r=support
Expected behavior: http://bugs.php.net/fix.php?id=36707&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=36707&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=36707&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=36707&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=36707&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=36707&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=36707&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=36707&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=36707&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=36707&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=36707&r=mysqlcfg