|
|
XXXIV. Function Handling functionsIntroductie
These functions all handle various operations involved in working
with functions.
AfhankelijkhedenDeze functies zijn beschikbaar als onderdeel van
de standarad module die altijd beschikbaar is. InstallatieEr zijn geen handelingen nodig m.b.t. tot installatie
voor deze functies, deze maken deel uit van de kern van PHP. Configuratie tijdens scriptuitvoerDeze extensie gebruikt geen configuratie regels. Voorgedefineerde constantenDeze extensie definieert geen constanten.
User Contributed Notes Function Handling functions |
add a note |
xmontero at dsitelecom dot com
23-Aug-2002 09:49 |
|
You can do some kind of overloading functions in PHP using
"function_exists".
Let's suppose you want a script to
call plugins that are php files and you want the plugins to
"override" behaviours that if not overriden are used by
default.
You might for example write a "mySQL table
viewer" which displays a table and it "opens a table",
"dumps the header", "dumps row-by-row" and then
"closes the table".
Let's suppose you want a plugin for
"Stocks" which prints negative stocks in red, so you want to
override the "dumping row-by-row" to do that behaviour. Instead
you do not want to have all the "default behaviour" repeated in
the plugin.
You may then do the following:
1) Define a
default plugin (ex: "default.php"
2) Write all your
functions in default.php to open, dump and close, but add them a
suffix:
open_table_default() dump_header_default() dump_row_default() close_table_default()
3)
Call your functions with a wrapper: Insetad of this: open_table() or
open_table_default() write
this:
plugincall("open_table");
4) Then write a
function called plugincall which uses function_exists() to see if you call
one or the other function:
function
plugincall($desired_function_name) {
if( function_exists(
$desired_function_name)) { //Call the plugin //Note the $
before the name $desired_function_name() } else {
$desired_function_name = $desired_function_name .
"_default"; if(
function_exists($desired_function_name)) { //Call the
default //Note the $ before the name
$desired_function_name() } else { // Nor the
plugin nor the default were defined } }
So, now, if the
require_once(plugin.php) contains a function called
"open_table()", it will be used. Instaed,
"open_table_default()" will be used.
It's not like
overloading functions, but it is very useful to write scripts ampliable by
other programmers: If they write a function, it is used, if not, the
default is used.
See ya! Xavier Montero.
|
|
add a note |
| |