summaryrefslogtreecommitdiff
path: root/Zend/zend_execute.c
Commit message (Collapse)AuthorAgeFilesLines
* some type cleanup workHarald Radi2002-04-231-3/+3
|
* - Pass TSRMLS to callbacks.Andi Gutmans2002-03-151-5/+5
|
* - Scope fix. When calling an imported function the scope will changeAndi Gutmans2002-03-151-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - correctly to the scope of the functions class. <?php function Hello() { print "Wrong one\n"; } class MyClass { static $hello = "Hello, World\n"; function Hello() { print self::$hello; } function Trampoline() { Hello(); } } import function Trampoline from MyClass; Trampoline(); ?>
* - Fix issues with $this when using it by itself without indirection such asAndi Gutmans2002-03-151-68/+35
| | | | | - $this->foo.
* fix for delete $this and unset $thisStanislav Malyshev2002-03-141-17/+32
|
* - Fix bug introduced with latest class hash table change.Andi Gutmans2002-03-121-1/+1
|
* - make class tables contain class_entry *, not class_entryStanislav Malyshev2002-03-121-19/+34
| | | | | - fix isset($this)
* - Fix build in ZTS mode.Andi Gutmans2002-03-101-8/+10
|
* New stuff for objects API:Stanislav Malyshev2002-03-101-1/+303
| | | | | | - Better assignment handling - More flexible operations with zval-containing objects
* - Support importing constants. e.g.:Andi Gutmans2002-03-081-1/+44
| | | | | | | | | | | | <?php class MyOuterClass { const Hello = "Hello, World\n"; } import const Hello from MyOuterClass; print Hello;
* - Add function * and class * functionality. Only constants are left.Andi Gutmans2002-03-061-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | <?php class MyOuterClass { class MyInnerClass { function func1() { print "func1()\n"; } function func2() { print "func2()\n"; } } } import class * from MyOuterClass; import function func2 from MyOuterClass::MyInnerClass; MyInnerClass::func1(); func2();
* - Initial patch to support importing from class scopes (for Stig).Andi Gutmans2002-03-021-0/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | - It isn't complete yet but I want to work on it from another machine. It - shouldn't break anything else so just don't try and use it. - The following is a teaser of something that already works: <?php class MyClass { function hello() { print "Hello, World\n"; } class MyClass2 { function hello() { print "Hello, World in MyClass2\n"; } } } import function hello, class MyClass2 from MyClass; MyClass2::hello(); hello(); ?>
* - Remove use of C++ reserved words namespace/thisAndi Gutmans2002-03-011-52/+41
|
* Mega-commit: Enter the new object modelStanislav Malyshev2002-02-071-252/+160
| | | | | | | Note: only standard Zend objects are working now. This is definitely going to break custom objects like COM, Java, etc. - this will be fixed later. Also, this may break other things that access objects' internals directly.
* - This small patch should also take care of allowing unseting of $this->fooAndi Gutmans2002-02-041-2/+7
| | | | | | - and static members. The unset() opcode was luckily already suitable for - object overloading.
* - Fix problem with the objects_destructor called during shutdown. It wasAndi Gutmans2002-02-041-44/+135
| | | | | | | | | - freeing objects from id 0 instead of id 1. id 0 is not used. - Change isset/empty opcodes to support static members and the new way of - doing $this->foobar. Also the opcodes operate now on the hash table - combined with the variable names so that they can be overloaded by the - soon to be added overloading patch.
* - Fix a bug reported by Sebastian with indirect class names not working.Andi Gutmans2002-01-221-10/+20
|
* - Improve performance of functions that use $GLOBALS[]Andi Gutmans2002-01-201-13/+0
| | | | | - Please check this and make sure it doesn't break anything.
* - Change exception handling to use the Java-like catch(MyException $exception)Andi Gutmans2002-01-131-8/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - semantics. Example: <?php class MyException { function __construct($exception) { $this->exception = $exception; } function Display() { print "MyException: $this->exception\n"; } } class MyExceptionFoo extends MyException { function __construct($exception) { $this->exception = $exception; } function Display() { print "MyException: $this->exception\n"; } } try { throw new MyExceptionFoo("Hello"); } catch (MyException $exception) { $exception->Display(); } ?>
* - Make sure $this is passed on to methodsAndi Gutmans2002-01-061-4/+12
|
* Happy New Year.Sebastian Bergmann2002-01-061-1/+1
|
* - Allow passing of $this as function arguments.Andi Gutmans2002-01-051-6/+22
| | | | | - Fix a bug which I introduced a couple of months ago
* - Significantly improve the performance of method calls and $this->memberAndi Gutmans2002-01-051-22/+27
| | | | | - lookups.
* - Improve performance of indirect-referenced function callsAndi Gutmans2002-01-041-10/+25
|
* - Separate other kinds of function calls too.Andi Gutmans2002-01-041-76/+134
| | | | | | - Significantly improve performance of function calls by moving lowercasing - the function name to compile-time when possible.
* - Start splitting up different kinds of function calls into differentAndi Gutmans2002-01-041-23/+27
| | | | | - opcodes.
* - MFZE1 for exit fix, exposing current function name in error messages andDerick Rethans2002-01-031-1/+2
| | | | | exposing zend_zval_type_name().
* - Support default arguments for reference parametersAndi Gutmans2001-12-281-8/+8
| | | | | - Fix two compile warnings
* - Support parent:: againAndi Gutmans2001-12-271-1/+10
|
* - Fix scoping issue. The following works now:Andi Gutmans2001-12-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <? class MyClass { static $id = 0; function MyClass() { $this->id = self::$id++; } function _clone() { $this->name = $clone->name; $this->address = "New York"; $this->id = self::$id++; } } $obj = new MyClass(); $obj->name = "Hello"; $obj->address = "Tel-Aviv"; print $obj->id; print "\n"; $obj = $obj->_clone(); print $obj->id; print "\n"; print $obj->name; print "\n"; print $obj->address; print "\n";
* - Initial support for _clone()Andi Gutmans2001-12-261-0/+12
|
* - Fix a crash (not a thorough fix).Andi Gutmans2001-12-251-0/+2
| | | | | - Commented old code
* - Fixed bug where global functions weren't called if they didn't existAndi Gutmans2001-12-241-4/+11
| | | | | - in the class scope
* - Fix crash bug in startup code.Andi Gutmans2001-12-131-2/+16
| | | | | - Start work on being able to reference global and local scope
* - Make classes have scope and function/constant lookups default to the classAndi Gutmans2001-12-121-7/+13
|
* - Rename zend_class_entry.constants -> zend_class_entry.constants_tableAndi Gutmans2001-12-111-2/+2
|
* - Start making scope change correctly when calling namespace functions.Andi Gutmans2001-12-111-13/+29
| | | | | | - When inside a namespace fallback to global namespace when function - or constant is not found.
* Update headers.Sebastian Bergmann2001-12-111-2/+2
|
* - More namespaces work.Andi Gutmans2001-12-101-4/+20
| | | | | - Nuke memory leak.
* - Support constants. The following works now:Andi Gutmans2001-12-061-10/+19
| | | | | | | | | | | | | | | | | | | <? class foo { const GC = "foo constant\n"; } define("GC", "Global constant\n"); namespace; print GC; namespace foo; print GC; namespace; print foo::GC; ?>
* - Initial work on changing namespace scope. Only methods & variablesAndi Gutmans2001-12-061-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - right now. <? $hey = "Global hey\n"; class foo { static $hey = "Namespace hey\n"; function bar() { print "in foo::bar()\n"; } } function bar() { print "in bar()\n"; } bar(); namespace foo; bar(); namespace; bar(); namespace foo; $bar_indirect = "bar"; $bar_indirect(); namespace; print $hey; namespace foo; print $hey; $hey = "Namespace hey #2\n"; namespace; print $hey; $hey = "Global hey #2\n"; namespace foo; print $hey; ?>
* - Nuke the namespace work I did. It'll be redone differently.Andi Gutmans2001-12-061-7/+0
|
* - Initial support for class constants. There are still a few semanticAndi Gutmans2001-11-301-6/+19
| | | | | | | | | | | | | | - issues which need to be looked into but basically it seems to work. - Example: <?php class foo { const hey = "hello"; } print foo::hey; ?>
* - Support static members. The following script works:Andi Gutmans2001-11-251-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <? class foo { class bar { function init_values() { for ($i=1; $i<10; $i++) { foo::bar::$hello[$i] = $i*$i; } } function print_values() { for ($i=1; $i<10; $i++) { print foo::bar::$hello[$i] . "\n"; } } } } foo::bar::init_values(); foo::bar::print_values(); for ($i=1; $i<10; $i++) { print $hello[$i]?"Shouldn't be printed\n":""; } ?>
* - MFZE1Andi Gutmans2001-11-241-17/+17
|
* - Support instantiation of nested class. The following script now shouldAndi Gutmans2001-11-041-18/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - work: -<?php - class foo - { - function bar() - { - print "bar() in class bar\n"; - } - - class barbara - { - function bar() - { - print "bar() in class foo::barbara\n"; - } - } - } - - $obj = new foo(); - $obj->bar(); - - $obj = new foo::barbara(); - $obj->bar(); -
* - Add constructor to the zend_class_entry instead of looking it up eachAndi Gutmans2001-11-031-4/+15
| | | | | | | - time by name. - This will allow the next patch of being able to instantiate nested - classes such as new foo::bar::barbara();
* - Initial support for nested class definitionsAndi Gutmans2001-10-291-6/+15
|
* MFTGZE1Zeev Suraski2001-10-271-1/+1
|
* - Merge the NAMESPACES_BRANCH. It wasn't a good idea to have a branch whenAndi Gutmans2001-09-301-415/+434
| | | | | - the whole CVS tree is work in progress