[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-cvs
Subject:    [PHP-CVS] cvs: php4 /ext/standard basic_functions.c
From:       "Jani Taskinen" <sniper () iki ! fi>
Date:       2001-08-29 23:53:22
[Download RAW message or body]

sniper		Wed Aug 29 19:53:22 2001 EDT

  Modified files:              
    /php4/ext/standard	basic_functions.c 
  Log:
  According to Zeev this code is just for showing how to create overloaded classes.
  
["sniper-20010829195322.txt" (text/plain)]

Index: php4/ext/standard/basic_functions.c
diff -u php4/ext/standard/basic_functions.c:1.390 \
                php4/ext/standard/basic_functions.c:1.391
--- php4/ext/standard/basic_functions.c:1.390	Wed Aug 29 12:00:30 2001
+++ php4/ext/standard/basic_functions.c	Wed Aug 29 19:53:22 2001
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: basic_functions.c,v 1.390 2001/08/29 16:00:30 sniper Exp $ */
+/* $Id: basic_functions.c,v 1.391 2001/08/29 23:53:22 sniper Exp $ */
 
 #include "php.h"
 #include "php_main.h"
@@ -100,11 +100,151 @@
 static void user_shutdown_function_dtor(php_shutdown_function_entry \
*shutdown_function_entry);  static void \
user_tick_function_dtor(user_tick_function_entry *tick_function_entry);  
+/* Demo code. Enable only if you need this. */
+#define ENABLE_TEST_CLASS 0
+
+#if ENABLE_TEST_CLASS
 void test_class_startup(void);
 pval test_class_get_property(zend_property_reference *property_reference);
 int test_class_set_property(zend_property_reference *property_reference, pval \
*value);  void test_class_call_function(INTERNAL_FUNCTION_PARAMETERS, \
zend_property_reference *property_reference);  
+pval test_class_get_property(zend_property_reference *property_reference)
+{
+	pval result;
+	zend_overloaded_element *overloaded_property;
+	zend_llist_element *element;
+
+	printf("Reading a property from a OverloadedTestClass object:\n");
+
+	for (element = property_reference->elements_list->head; element; element = \
element->next) { +		overloaded_property = (zend_overloaded_element *) element->data;
+	
+		switch (Z_TYPE_P(overloaded_property)) {
+	
+			case OE_IS_ARRAY:
+				printf("Array offset:  ");
+				break;
+
+			case OE_IS_OBJECT:
+				printf("Object property:  ");
+				break;
+		}
+	
+		switch (Z_TYPE(overloaded_property->element)) {
+	
+			case IS_LONG:
+				printf("%ld (numeric)\n", Z_LVAL(overloaded_property->element));
+				break;
+
+			case IS_STRING:
+				printf("'%s'\n", Z_STRVAL(overloaded_property->element));
+				break;
+		}
+		pval_destructor(&overloaded_property->element);
+	}
+
+	Z_STRVAL(result) = estrndup("testing", 7);
+	Z_STRLEN(result) = 7;
+	Z_TYPE(result) = IS_STRING;
+	return result;
+}
+
+int test_class_set_property(zend_property_reference *property_reference, pval * \
value) +{
+	zend_overloaded_element *overloaded_property;
+	zend_llist_element *element;
+
+	printf("Writing to a property from a OverloadedTestClass object:\n");
+	printf("Writing '");
+	zend_print_variable(value);
+	printf("'\n");
+
+	for (element = property_reference->elements_list->head; element; element = \
element->next) { +		overloaded_property = (zend_overloaded_element *) element->data;
+		
+		switch (Z_TYPE_P(overloaded_property)) {
+	
+			case OE_IS_ARRAY:
+				printf("Array offset:  ");
+				break;
+	
+			case OE_IS_OBJECT:
+				printf("Object property:  ");
+				break;
+		}
+
+		switch (Z_TYPE(overloaded_property->element)) {
+
+			case IS_LONG:
+				printf("%ld (numeric)\n", Z_LVAL(overloaded_property->element));
+				break;
+	
+			case IS_STRING:
+				printf("'%s'\n", Z_STRVAL(overloaded_property->element));
+				break;
+		}
+		pval_destructor(&overloaded_property->element);
+	}
+	return 0;
+}
+
+void test_class_call_function(INTERNAL_FUNCTION_PARAMETERS, zend_property_reference \
*property_reference) +{
+	zend_overloaded_element *overloaded_property;
+	zend_llist_element *element;
+
+	printf("Invoking a method on OverloadedTestClass object:\n");
+
+	for (element = property_reference->elements_list->head; element; element = \
element->next) { +		overloaded_property = (zend_overloaded_element *) element->data;
+
+		switch (Z_TYPE_P(overloaded_property)) {
+	
+			case OE_IS_ARRAY:
+				printf("Array offset:  ");
+				break;
+	
+			case OE_IS_OBJECT:
+				printf("Object property:  ");
+				break;
+	
+			case OE_IS_METHOD:
+				printf("Overloaded method:  ");
+		}
+
+		switch (Z_TYPE(overloaded_property->element)) {
+
+			case IS_LONG:
+				printf("%ld (numeric)\n", Z_LVAL(overloaded_property->element));
+				break;
+	
+			case IS_STRING:
+				printf("'%s'\n", Z_STRVAL(overloaded_property->element));
+				break;
+		}
+		pval_destructor(&overloaded_property->element);
+	}
+
+	printf("%d arguments\n", ZEND_NUM_ARGS());
+	RETVAL_STRING("testing", 1);
+}
+
+void test_class_startup(void)
+{
+	zend_class_entry test_class_entry;
+	TSRMLS_FETCH();
+
+	INIT_OVERLOADED_CLASS_ENTRY(test_class_entry,
+								"OverloadedTestClass",
+								NULL, test_class_call_function,
+								test_class_get_property,
+								test_class_set_property);
+
+	zend_register_internal_class(&test_class_entry TSRMLS_CC);
+}
+#endif
+
 
 function_entry basic_functions[] = {
 	PHP_FE(constant,														NULL)
@@ -778,7 +918,10 @@
 	REGISTER_MATH_CONSTANT(M_SQRT2);
 	REGISTER_MATH_CONSTANT(M_SQRT1_2);
 
+#if ENABLE_TEST_CLASS
 	test_class_startup();
+#endif
+
 	REGISTER_INI_ENTRIES();
 
 	register_phpinfo_constants(INIT_FUNC_ARGS_PASSTHRU);
@@ -2027,144 +2170,6 @@
 	RETURN_TRUE;
 }
 /* }}} */
-
-
-pval test_class_get_property(zend_property_reference *property_reference)
-{
-	pval result;
-	zend_overloaded_element *overloaded_property;
-	zend_llist_element *element;
-
-	printf("Reading a property from a OverloadedTestClass object:\n");
-
-	for (element = property_reference->elements_list->head; element; element = \
                element->next) {
-		overloaded_property = (zend_overloaded_element *) element->data;
-	
-		switch (Z_TYPE_P(overloaded_property)) {
-	
-			case OE_IS_ARRAY:
-				printf("Array offset:  ");
-				break;
-
-			case OE_IS_OBJECT:
-				printf("Object property:  ");
-				break;
-		}
-	
-		switch (Z_TYPE(overloaded_property->element)) {
-	
-			case IS_LONG:
-				printf("%ld (numeric)\n", Z_LVAL(overloaded_property->element));
-				break;
-
-			case IS_STRING:
-				printf("'%s'\n", Z_STRVAL(overloaded_property->element));
-				break;
-		}
-		pval_destructor(&overloaded_property->element);
-	}
-
-	Z_STRVAL(result) = estrndup("testing", 7);
-	Z_STRLEN(result) = 7;
-	Z_TYPE(result) = IS_STRING;
-	return result;
-}
-
-int test_class_set_property(zend_property_reference *property_reference, pval * \
                value)
-{
-	zend_overloaded_element *overloaded_property;
-	zend_llist_element *element;
-
-	printf("Writing to a property from a OverloadedTestClass object:\n");
-	printf("Writing '");
-	zend_print_variable(value);
-	printf("'\n");
-
-	for (element = property_reference->elements_list->head; element; element = \
                element->next) {
-		overloaded_property = (zend_overloaded_element *) element->data;
-		
-		switch (Z_TYPE_P(overloaded_property)) {
-	
-			case OE_IS_ARRAY:
-				printf("Array offset:  ");
-				break;
-	
-			case OE_IS_OBJECT:
-				printf("Object property:  ");
-				break;
-		}
-
-		switch (Z_TYPE(overloaded_property->element)) {
-
-			case IS_LONG:
-				printf("%ld (numeric)\n", Z_LVAL(overloaded_property->element));
-				break;
-	
-			case IS_STRING:
-				printf("'%s'\n", Z_STRVAL(overloaded_property->element));
-				break;
-		}
-		pval_destructor(&overloaded_property->element);
-	}
-
-	return 0;
-}
-
-void test_class_call_function(INTERNAL_FUNCTION_PARAMETERS, zend_property_reference \
                *property_reference)
-{
-	zend_overloaded_element *overloaded_property;
-	zend_llist_element *element;
-
-	printf("Invoking a method on OverloadedTestClass object:\n");
-
-	for (element = property_reference->elements_list->head; element; element = \
                element->next) {
-		overloaded_property = (zend_overloaded_element *) element->data;
-
-		switch (Z_TYPE_P(overloaded_property)) {
-	
-			case OE_IS_ARRAY:
-				printf("Array offset:  ");
-				break;
-	
-			case OE_IS_OBJECT:
-				printf("Object property:  ");
-				break;
-	
-			case OE_IS_METHOD:
-				printf("Overloaded method:  ");
-		}
-
-		switch (Z_TYPE(overloaded_property->element)) {
-
-			case IS_LONG:
-				printf("%ld (numeric)\n", Z_LVAL(overloaded_property->element));
-				break;
-	
-			case IS_STRING:
-				printf("'%s'\n", Z_STRVAL(overloaded_property->element));
-				break;
-		}
-		pval_destructor(&overloaded_property->element);
-	}
-
-	printf("%d arguments\n", ZEND_NUM_ARGS());
-	RETVAL_STRING("testing", 1);
-}
-
-void test_class_startup(void)
-{
-	zend_class_entry test_class_entry;
-	TSRMLS_FETCH();
-
-	INIT_OVERLOADED_CLASS_ENTRY(test_class_entry,
-								"OverloadedTestClass",
-								NULL, test_class_call_function,
-								test_class_get_property,
-								test_class_set_property);
-
-	zend_register_internal_class(&test_class_entry TSRMLS_CC);
-}
-
 
 /* {{{ proto string ini_get(string varname)
    Get a configuration option */



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: php-cvs-unsubscribe@lists.php.net
For additional commands, e-mail: php-cvs-help@lists.php.net
To contact the list administrators, e-mail: php-list-admin@lists.php.net

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic