ID: 31701 Updated by: [EMAIL PROTECTED] Reported By: attibln at gmx dot net -Status: Open +Status: Wont fix Bug Type: Feature/Change Request Operating System: linux PHP Version: 5.0.3 New Comment:
This won't change in the nearest future. Previous Comments: ------------------------------------------------------------------------ [2005-01-29 18:01:43] attibln at gmx dot net thx :) ------------------------------------------------------------------------ [2005-01-28 23:19:46] [EMAIL PROTECTED] Reclassified as feature request as there is no bug here. ------------------------------------------------------------------------ [2005-01-26 19:50:17] attibln at gmx dot net Well, there sould be a Notice then. We agree, this behaviour is not (really) object oriented behaviour, do we? So if it's kept for backward compatibility php5+ should show a notice. ------------------------------------------------------------------------ [2005-01-26 09:05:56] [EMAIL PROTECTED] THis is wanted behavior, as not to break scripts with PHP 4. ------------------------------------------------------------------------ [2005-01-26 03:10:37] attibln at gmx dot net 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 this bug report at http://bugs.php.net/?id=31701&edit=1