> Take a look at http://www.php.net/manual/en/zend.calling-user-functions.php > I guess that's what you need.
Hmmm. I'm not sure, but I thought this was about calling user-defined functions, not existing PHP module functions. Looking at my last email, I probably wasn't clear enough :P I don't want to call a passed in function name a la a callback; I want to call a core PHP function like implode(), or explode() or mysql_connect() (for example) -- specifically, I need to call the eval() function. Can you do that in the manner defined for calling user functions? Are the functions explode, implode, etc. in the user function table? I thought those just contained the functions that had been defined by the user in the currently being parsed script -- not all functions defined by loaded modules. Am I wrong? > What is your extension about? I'm the author/maintainer of a pair of PHP libraries named the NDBE & the NObjects (http://ndbe.sourceforge.net); the former is a database editor/ abstact layer library, and the latter is general 'odds and ends' library of scripts, some of which the former requires to run. One such script emulates the Windows registry, providing a persistant, filesystem-like hive/key/value system for storing information in various formats. The scripts provides an object (NHive) that allows you to access this 'registry', which is actually stored on the drive in a file-tree (at a location you specify). Furthermore, we expand on the idea of the registry to add in the concept of 'ethereal hives'. If you're familliar with the Windows registry, picture them as sort of a read-only hive (like HKEY_LOCAL_USER) which is only used if the requested key/value can't be found in the *actual* hive (of the same name). Ethereal hives sort of provide a set of default values; the first time you ask for 'HIVE/foobar/foo', and it can't find it in the *real* registry, it looks it up in the ethereal hive of the same name ('HIVE' in this case). If it finds a key 'foobar' with a value 'foo', it would return that value contained in 'foo'. If you write out a new value to 'HIVE/foobar/foo' it will write it to the REAL registry however; and ever after when it ask for that key ('HIVE/foobar/foo') it will give you the value from the real registry, which you just created and set. It's a little confusing to explain, but solves a wide variety of problems we had with default values, and allows you to do wonderful things with checking them in. In short, it can -- for the most part -- allow you to do away with configuration files. It works very well, and we (my partners & I) have found it *very* useful over the last couple of years, and most of the NObjects and all of the NDBE runs on it. We had the natural idea of making it into a PHP module more than a year ago, but none of us could find the time -- I finally did a few days ago and was surpised how quickly it's come along. Of course, all of the logic is more or less written out for me; it's in the NHive.php script :) It's just a matter or converting the code to a somewhat lower-level language (namely C) and making it properly-cross platform. I intend to make the Win32 version use the *actual* Windows registry, but that's for later -- haven't ever actually *used* PHP on Windows before. Anyways, that's the (long-winded) explanation. I've got 95% of the utility functions written, I just have to do the set/get/create/delete functions. After that, I'll be thoroughly testing it (fortunately I have a complete library and application in the NDBE to test it on) and then be submitting it wherever it should be submitted for consideration -- assuming someone's interested. Otherwise, I guess it'll just be posted on sourceforge or freshmeat :) Wood Shavings! Andrew Patterson -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php