#31701 [NEW]: (mis-) use of undeclared attributes
| From: | attibln at gmx dot net | Date: | Wed, 26 Jan 2005 02:10:38 +0000 |
| Subject: | #31701 [NEW]: (mis-) use of undeclared attributes | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-72824@lists.php.net to get a copy of this message | ||
From: attibln at gmx dot net
Operating system: linux
PHP version: 5.0.3
PHP Bug Type: Class/Object related
Bug description: (mis-) use of undeclared attributes
Description:
------------
Defining an attribute within a method is possible even if it was not
declared in the class.
This is some kind of hidden/ghost attributes ... if they have not been
declared - e.g. public name etc. - it will be quite hard to understand a
class using those "ghost attribute". Especially when the are defined in
method bar() and later on used in method foo().
My system:
gentoo 2.4.26-gentoo-r9
apache 2.0.51-r1
PHP Version 5.0.3 / Zend Engine v2.0.3
(php) use flags:
-adabas +apache2 -bcmath -berkdb -birdstep +bzlib -calendar -cdb -cpdflib
+crypt -ctype +curl +curlwrappers -db2 -dba -dbase -dbm -dbmaker -dbx
-debug -dio -empress -empress-bcs -esoob +exif -fam -fdftk -filepro
-flatfile -frontbase -ftp +gd -gd-external -gdbm -gmp -hyperwave-api
-iconv -imap -informix -ingres -inifile -interbase -iodbc +jpeg -kerberos
-ldap -libedit -mcve +memlimit -mhash +mime -ming -mnogosearch -msession
-msql -mssql +mysql -mysqli +ncurses -nis +nls -oci8 -odbc -oracle7
-ovrimos +pcntl -pcre -pfpro +png -posix +postgres -qdbm -readline -recode
-sapdb -sasl +session -shared -sharedmem +simplexml -snmp +soap +sockets
-solid -spell +spl -sqlite +ssl -sybase -sybase-ct -sysvipc +tidy -tiff
+tokenizer -truetype -wddx +xml2 -xmlrpc -xpm +xsl +zlib
Reproduce code:
---------------
<?php
class MyDestructableClass {
function __construct() {
$this->nev = "MyDestructableClass";
}
function show_nev()
{
print( '<br />nev is ' . $this->nev );
}
}
$obj = new MyDestructableClass();
$obj->show_nev();
?>
Expected result:
----------------
There should be an Error messagen ( or at least a warning) saying:
Use of undeclared attribute in ... on line ...
Actual result:
--------------
regarding my "example":
nev is MyDestructableClass
--
Edit bug report at http://bugs.php.net/?id=31701&edit=1
--
Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=31701&r=trysnapshot4
Try a CVS snapshot (php5.0): http://bugs.php.net/fix.php?id=31701&r=trysnapshot50
Try a CVS snapshot (php5.1): http://bugs.php.net/fix.php?id=31701&r=trysnapshot51
Fixed in CVS: http://bugs.php.net/fix.php?id=31701&r=fixedcvs
Fixed in release: http://bugs.php.net/fix.php?id=31701&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=31701&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=31701&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=31701&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=31701&r=support
Expected behavior: http://bugs.php.net/fix.php?id=31701&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=31701&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=31701&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=31701&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=31701&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=31701&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=31701&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=31701&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=31701&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=31701&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=31701&r=mysqlcfg