The mixed pseudotype is explained as meaning "multiple but not necessarily all" types, and the example of str_replace(mixed, mixed, mixed) is given where "mixed" means "string or array".
Keep in mind that this refers to the types of the function's arguments _after_ any type juggling.
Pseudo-types and variables used in this documentation
mixed
mixed indicates that a parameter may accept multiple (but not necessarily all) types.
gettype() for example will accept all PHP types, while str_replace() will accept strings and arrays.
callback
callback pseudo-types was used in this documentation before callable type hint was introduced by PHP 5.4. It means exactly the same.
void
void as a return type means that the return value is useless. void in a parameter list means that the function doesn't accept any parameters.
...
$... in function prototypes means
and so on. This variable name is used when a function can
take an endless number of arguments.
Pseudo-types and variables used in this documentation
Hayley Watson
24-May-2007 07:44
24-May-2007 07:44
levi at alliancesoftware dot com dot au
08-Feb-2007 11:44
08-Feb-2007 11:44
Parent methods for callbacks should be called 'parent::method', so if you wish to call a non-static parent method via a callback, you should use a callback of
<?
// always works
$callback = array($this, 'parent::method')
// works but gives an error in PHP5 with E_STRICT if the parent method is not static
$callback array('parent', 'method');
?>
Edward
01-Feb-2007 11:15
01-Feb-2007 11:15
To recap mr dot lilov at gmail dot com's comment: If you want to pass a function as an argument to another function, for example "array_map", do this:
regular functions:
<?
array_map(intval, $array)
?>
static functions in a class:
<?
array_map(array('MyClass', 'MyFunction'), $array)
?>
functions from an object:
<?
array_map(array($this, 'MyFunction'), $array)
?>
I hope this clarifies things a little bit
mr dot lilov at gmail dot com
12-Aug-2005 03:17
12-Aug-2005 03:17
This's a useful example about callback, Look at the session_set_save_handler function.
From: http://www.zend.com/zend/spotlight/code-gallery-wade8.php
<?php
/* Create new object of class */
$ses_class = new session();
/* Change the save_handler to use the class functions */
session_set_save_handler (array(&$ses_class, '_open'),
array(&$ses_class, '_close'),
array(&$ses_class, '_read'),
array(&$ses_class, '_write'),
array(&$ses_class, '_destroy'),
array(&$ses_class, '_gc'));
/* Start the session */
session_start();
class session
{
/* Define the mysql table you wish to use with
this class, this table MUST exist. */
var $ses_table = "sessions";
/* Change to 'Y' if you want to connect to a db in
the _open function */
var $db_con = "Y";
/* Configure the info to connect to MySQL, only required
if $db_con is set to 'Y' */
var $db_host = "localhost";
var $db_user = "username";
var $db_pass = "password";
var $db_dbase = "dbname";
/* Create a connection to a database */
function db_connect() {
............
}
/* Open session, if you have your own db connection
code, put it in here! */
function _open($path, $name) {
.............
}
/* Close session */
function _close() {
..............
}
/* Read session data from database */
function _read($ses_id) {
.................
}
/* Write new data to database */
function _write($ses_id, $data) {
...........
}
/* Garbage collection, deletes old sessions */
function _gc($life) {
............
}
}
?>