MANUAL DE PHP

(y algo mas)windsurf pozo izquierdo
Google
search for in the  
ELMARRAJO.COM mysql bulma desarrollo web linux fedora html ayuda

windsurf mercedes camper

call_user_func

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

call_user_func --  Llamar una función de usuario dada por el primer parámetro

Descripción

mixed call_user_func ( callback funcion [, mixed parametro [, mixed ...]] )

Llamar una función definida por el usuario dada por el parámetro funcion. Considere el siguiente caso:

<?php
function peluquero($tipo)
{
   echo
"Usted queria un corte $tipo, no hay problema";
}
call_user_func('peluquero', "hongo");
call_user_func('peluquero', "afeitado");
?>

Los métodos de clases pueden ser invocados estáticamente también usando esta función, pasando array($nombre_clase, $nombre_metodo) al parámetro funcion.

<?php
class miclase {
   function
decir_hola()
   {
       echo
"Hola!\n";
   }
}

$nombre_clase = "miclase";

call_user_func(array($nombre_clase, 'decir_hola'));
?>

Nota: Note que los parámetros para call_user_func() no son pasados por referencia.

<?php
function incremento(&$var)
{
  
$var++;
}

$a = 0;
call_user_func('incremento', $a);
echo
$a; // 0

call_user_func_array('incremento', array(&$a)); // Es posible usar esto en su lugar
echo $a; // 1
?>

Vea también: is_callable(), call_user_func_array(), , y information about the callback type.



add a note add a note User Contributed Notes
call_user_func
watchout at no dot spam dot please
29-Aug-2006 06:05
> This particular case will not work. The user functions can only be successfully called (as the documentation alludes to), with static calls to class functions.

actually it *does* work on PHP 5.0.2 (tested), and should also work on PHP 4.3.x (untested). Also the documentation does not state that only calls to static class methods are possible, but it says clearly that calls to OBJECT (thats dynamic) methods are possible: http://cz.php.net/manual/en/http://indices.com.es/language.pseudo-types.html (see under type callback)
26-Jul-2006 12:18
Re: bostjan dot skufca at domenca dot com 's comment

"If you need to call object method from within the very same object (NOT CLASS!):
call_user_func(array(&$this, 'methodFoo'));"

This particular case will not work. The user functions can only be successfully called (as the documentation alludes to), with static calls to class functions.
rlansky at webroot dot com
14-Jul-2006 04:17
Based on the previous posts, it appears that using call_user_func can be serveral times slower than using variable substitution. I think these results are somewhat misleading.

I set up a similar test in which a static method of an object was called repeatedly in a loop. I got similar results to those seen; when calling the method using call_user_func the execution was twice that of calling the method directly. However, I then started adding some "meat" to the method in question. In my case, I found that what was constant was not the percentage change, but rather that there is a fixed cost to using call_user_func.

In my case, this fixed cost was 2 microseconds per call. When executing a method that performs no operations, this is a large percentage of the execution time for that method. However, when using this on a method that actually performs some work, the 2 microsecond cost is almost impossible to measure.

It seems to me that if you want to use call_user_func to call a very fast executing method, and you need to do this thousands of times, then you may want to reconsider. However, if you are using this to call methods that are not executed thousands of times, the small fixed cost of using php call_user_func is probably not an issue.
Maresa
13-Apr-2006 03:41
I tested the same code that insta at citiesunlimited dot com pasted on the following machines:

www1 machine:
OS:  FreeBSD 5.2.1-RELEASE
CPU: 2 x Intel(R) Xeon(TM) CPU 2.66GHz (2657.82-MHz 686-class CPU) with Hyperthreading
MEM: 1073217536 (1023 MB)
PHP 5.1.2 (cli)
PHP 4.4.1 (Web)

www2 machine:
OS:  Linux version 2.6.14-gentoo-r5 Gentoo 3.4.3-r1, ssp-3.4.3-0, pie-8.7.7)
CPU: 2 x Dual Core AMD Opteron(tm) Processor 265 stepping 02 1808.357 MHz
MEM: 2060388k total
PHP 5.1.2 (cli)
PHP Version 4.4.0-pl1-gentoo (web)

dev machine:
OS:  Linux version 2.6.15-gentoo-r1 Gentoo 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie-8.7.7.1
CPU: Intel(R) Pentium(R) 4 CPU 2.00GHz stepping 04
MEM: 516384k total,
PHP 4.4.0-pl1-gentoo (cli)
PHP Version 4.4.0-pl1-gentoo (web)

The result are as follows:

www1 - CLI
Variable functions took 0.012186050415 seconds.
call_user_func took 0.0300550460815 seconds.
eval took 0.17235994339 seconds.

www1 - Web
Variable functions took 0.017616 seconds.
call_user_func took 0.034926 seconds.
eval took 0.149618 seconds

www2 - CLI
Variable functions took 0.0065491199493408 seconds.
call_user_func took 0.019452095031738 seconds.
eval took 0.10734891891479 seconds.

www2 - Web
Variable functions took 0.01565 seconds.
call_user_func took 0.02613 seconds.
eval took 0.132258 seconds.

dev - CLI
Variable functions took 0.025176 seconds.
call_user_func took 0.047402 seconds.
eval took 0.168196 seconds.

dev - Web
Variable functions took 0.025465 seconds.
call_user_func took 0.049713 seconds.
eval took 0.20154 seconds.

On www1 - CLI, eval is about 14 times slower than calling function by using variable.
On www1 - Web, eval is about 8.5 times slower (hmm interesting. Perhaps PHP4 is faster calculating eval than PHP5)

On www2 - CLI, eval is about 16 times slower than calling function by using variable.
On www2 - Web, eval is about 8.5 times slower (about same result as www1)

On dev - CLI, eval is about 6.6 times slower than calling function by using variable.
On dev - Web, eval is about 8 times slower (about same result as www1)

On the dev machine, CLI and web version of PHP is the same. and their speed difference between calling function using variable or eval does not differ that much compare to PHP5 VS PHP5
insta at citiesunlimited dot com
06-Feb-2006 12:15
I benchmarked the comparison in speed between variable functions, call_user_func, and eval.  My results are below:

Variable functions took 0.125958204269 seconds.
call_user_func took 0.485446929932 seconds.
eval took 2.78526711464 seconds.

This was run on a Compaq Proliant server, 180MHz Pentium Pro 256MB RAM.  Code is as follows:

<?php

function fa () { return 1; }
function
fb () { return 1; }
function
fc () { return 1; }

$calla = 'fa';
$callb = 'fb';
$callc = 'fc';

$time = microtime( true );
for(
$i = 5000; $i--; ) {
  
$x = 0;
  
$x += $calla();
  
$x += $callb();
  
$x += $callc();
   if(
$x != 3 ) die( 'Bad numbers' );
}
echo(
"Variable functions took " . (microtime( true ) - $time) . " seconds.<br />" );

$time = microtime( true );
for(
$i = 5000; $i--; ) {
  
$x = 0;
  
$x += call_user_func('fa', '');
  
$x += call_user_func('fb', '');
  
$x += call_user_func('fc', '');
   if(
$x != 3 ) die( 'Bad numbers' );
}
echo(
"call_user_func took " . (microtime( true ) - $time) . " seconds.<br />" );

$time = microtime( true );
for(
$i = 5000; $i--; ) {
  
$x = 0;
   eval(
'$x += ' . $calla . '();' );
   eval(
'$x += ' . $callb . '();' );
   eval(
'$x += ' . $callc . '();' );
   if(
$x != 3 ) die( 'Bad numbers' );
}
echo(
"eval took " . (microtime( true ) - $time) . " seconds.<br />" );

?>
Marco
05-Oct-2005 01:42
>phil at gettcomm dot com
>22-May-2002 04:51
>if you need to get a reference back from a method, you can work around
>call_user_func()'s shortcomings like this:
>
Naaa! Having back a refererence is a real problem, but it can be solved by mean of eval(), instead of using call_user_func:

<code>
  class Node {
   var $name;
   var $child;
   function Node ( $name ) { $this->name = $name; }
   function &getChild () { return $this->child; }
  }
  $p = new Node ( 'Father' );
  $c = new Node ( 'Child' );
  $p->child = &$c; 

  eval ( "\\$cref = &\\$p->getChild ();" );
  $cref->name = 'Another Child';

  // Prints out 'Another Child'
  echo "****** After eval c = " . $c->name . "\\n\\n";

</code>
php at REMOVEMEkennel17 dot co dot uk
09-Aug-2005 08:46
re comment by mw at lanfear dot com

I am using PHP 4.3.2 and that technique works fine here as well.
mw at lanfear dot com
26-Jul-2005 01:49
This function is actually quite useful for calling static methods on classes, which you CANNOT call as:

$v1 = 'MyClass';
$m1 = 'method';
$v1::$m1();          // syntax error -- not permitted.

The following, however, DOES work quite well, and is hopefully slightly faster than eval() ...

$ar = array($v1, $m1);

call_user_func($ar);    // works teh awes0me!!1!

[I am, however, presuming PHP5 here ...]
zeisss at web dot de
23-Jun-2005 07:34
-------------------------------------------
Hey

I'm struggling to think of a practical use for this function that can't be duplicated with variable functions. The only use I can think of is when calling variable functions when your variable need modification:
--------------------------------------------

I tried to call nl2br() with variable functions. Didn't work. But call_user_func worked. Dunno why, just for info.
FRANK at ETHISOFT dot NL
08-Jun-2005 04:36
You should avoid this function and use variable function calls instead!
The main reason for this is the fact that you will generate twice as many function calls as actually needed.
Thus, your server will encounter twice the load of function calls.

You people should not want this!
@ your service!
info at webseiteselberpflegen dot de
18-May-2005 01:00
It seems like call_user_func() can not be used to create Objects via the new Command.

The Following example dosen't work:
<?
 
include_once(class_".$type.".php");
  $object = new call_user_func ('bdv_'.$type);
?>

But this works:
<?
   include_once(class_"
.$type.".php");
  
$constr = 'bdv_'.$type;
  
$object = new $constr();
?>
d at safetypub dot org
15-Mar-2005 08:43
callbacks, this par excellence, goes with set error handler, everywhere you'ren't sure of extensio de intensionibus (animis alii).

<?php

$checkMe
= null;
$detail = array();
set_error_handler("imErrant");

array_shift($argv);
if (
$argc == 1){
      
call_user_func(strtolower($argv[0]));
} else if(
$argc == 2){
      
call_user_func(strtolower($argv[0]), $argv[1]);
}
else
      
call_user_func_array(strtolower($argv[0]),array_shift($argv));

if(
$checkMe)var_export($detail);

function
imErrant($no, $str, $file, $line)
{
   global
$checkMe, $detail;
  
$checkMe = $no;
  
$detail = array($str, $file, $line);
}
?>
24-Feb-2005 07:46
<?php
/*
   A very simple event handler dispose and change the latest one I did
*/

class Duke
{
//public:
  
var $m_pRaiser;
   var
$m_strRaiserFun;
   var
$m_objArgs;
//public:
  
function Duke$pRaiser,
          
$strRaiserFun,
          
$objArgs )
   {
      
$this ->m_pRaiser      = $pRaiser;
      
$this ->m_strRaiserFun = $strRaiserFun;
      
$this ->m_objArgs      = $objArgs;

   }
//end of constructor

}//end of class Duke

class A
{
//protected:
  
function OnEventHandler( $sender, $args )//virtual
  
{
      
$sender ->SayHello();
   }
//end of OnEventHandler( $sender, $args )
 
//public:
  
function OnEvent( $pDuke = null )
   {       
       if(
$pDuke == null )
       {
          
call_user_func( array( &$this, "OnEventHandler" ), $this, null );
           return;
       }

      
call_user_func( array( $pDuke ->m_pRaiser, $pDuke ->m_strRaiserFun ), $pDuke ->m_pRaiser, $pDuke ->m_objArgs );

   }
//end of  OnEvent( $pDuke )

  
function SayHello()//virtual
  
{
       echo
"A::SayHello" . "<br>";
   }
//end of SayHello()

}//end of class A

class B extends A
{
//public:
  
function SayHello()//override
  
{
       echo
"B::SayHello" . "<br>";
   }
//end of SayHello()

}//end of class B

//////////////////////////////////////////////////////////////////////
//Main import to test
//
$a = &new A();
$b = &new B();

$pDuke = &new Duke( $b, "OnEventHandler", null );

$b ->OnEvent();
$b ->OnEvent( $pDuke );
?>
zxy at estec-jp dot com
24-Feb-2005 02:57
A simple event handler dispose released by useful callback in PHP 4.x

<?php
class Duke
{
//public:
  
var $m_pRaiser;
   var
$m_strRaiserFun;
   var
$m_objArgs;
//public:
  
function Duke$pRaiser,
          
$strRaiserFun,
          
$objArgs )
   {
      
$this ->m_pRaiser      = $pRaiser;
      
$this ->m_strRaiserFun = $strRaiserFun;
      
$this ->m_objArgs      = $objArgs;

   }
//end of constructor

}//end of class Duke

class A
{
//protected:
  
function OnEventHandler( $sender, $args )//virtual
  
{
      
$sender ->SayHello();
   }
//end of OnEventHandler( $sender, $args )
 
//public:
  
function OnEvent( $pDuke )
   {
      
call_user_func( array( $pDuke ->m_pRaiser, $pDuke ->m_strRaiserFun ), $pDuke ->m_pRaiser, $pDuke ->m_objArgs );
   }
//end of  OnEvent( $pDuke )

  
function SayHello()//virtual
  
{
       echo
"A::SayHello" . "<br>";
   }
//end of SayHello()

}//end of class A

class B extends A
{
//public:
  
function SayHello()//override
  
{
       echo
"B::SayHello" . "<br>";
   }
//end of SayHello()

}//end of class B

///////////////////////////////////////////////////////////
//Main import to test
//
$a = &new A();
$b = &new B();

$pDuke = &new Duke( $b, "SayHello", null );
$b ->OnEvent( $pDuke );
?>
rob at PLEASEDONT dot digital-crocus dot SPAMME dot com
18-Feb-2005 06:16
Hey

I'm struggling to think of a practical use for this function that can't be duplicated with variable functions. The only use I can think of is when calling variable functions when your variable need modification:

<?php

function hey1 { echo "hey1"; }
function
hey2 { echo "hey2"; }
function
hey3 { echo "hey3"; }

for (
$n = 1; $n <= 3; $n++) {

 
// variable variables:

 
$func = "hey$n";
  $
$func();

 
// call_user_func():

 
call_user_func("hey$n");
}

?>

call_user_func() is one less line, however I would always use variable variables for readability. Are there any more practical uses I'm overlooking?
bostjan dot skufca at domenca dot com
15-Dec-2004 12:33
This is the CORRECTED VERSION of previous note. After playing a while I realised that objects are not passed by reference implicitly, you have to do it on your own, so:

call_user_func(array($objectBar, 'methodFoo')); // case sensitive

first duplicates object $objectBar (internally) and only then calls it's methodFoo. This kind of use is discouraged as it may result in "unpredicted behaviour".

Correct version is here.
call_user_func(array(&$objectBar, 'methodFoo')); // case sensitive
(note the reference operator).

--- and the corrected note is here ---

I couldn't find any simple list of available callback variations, so I made one. It is tested on PHP 4.3.9 only.

If you need to call ordinary function:
call_user_func('funcFoo');

If you need to call CLASS method (NOT object):
call_user_func(array('classBar', 'methodFoo')); // case insensitive

If you need to call OBJECT method:
call_user_func(array(&$objectBar, 'methodFoo')); // case sensitive

If you need to call method of object of object:
call_user_func(array(&$objectBar->objectTor, 'methodFoo')); // case sensitive

If you need to call object method from within the very same object (NOT CLASS!):
call_user_func(array(&$this, 'methodFoo'));
07-Oct-2004 12:23
If you are trying to instantiate an object from a class whose name is dynamic, you WILL NOT be able to do this with call_user_func() and I do not suggest that you do it with eval(). The way to do it is actually much simpler than i thought. As far as i know this works in PHP 4 and 5:

<?PHP
class foo {
 var
$boo;
   function
foo( $someVal ) {
    
$this->boo = $someVal;
   }
}

$ClassToUse = "foo";
$bar = new $ClassToUse('test');
echo
$bar->boo;
?>
arjini at mac dot com
29-Mar-2004 05:04
Some of the wierder examples below confused me, and made me think that the following would work (but it does!).

<?

class barber{
   function
shop($one,$two,$three,$four='quartet'){
       echo
$one.','.$two.','.$three.','.$four;
   }
}

$bsq = new barber;
call_user_func(array(&$bsq,'shop'),'one','two','three');

/* Output = one,two,three,quartet */

class bigBarber{
   var
$quartet;
   function
bigBarber(){
      
$this->quartet = 'four';
   }
   function
shop($one,$two,$three,$five='quintet'){
       echo
$one.','.$two.','.$three.','.$this->quartet.','.$five;
   }
}

$bbsq = new bigBarber();
call_user_func(array(&$bbsq,'shop'),'one','two','three');

/* Output = one,two,three,four,quintet */

?>
Kris Koskelin
22-Jan-2004 03:21
I was trying to use this function to call a method of an already-instantiated object.  I needed to do this with the object itself, not simply call the class' method.

To accomplish this, I really avoided this particular function altogether like this:
<?
if ( method_exists($my_obj, $action) ){
     return
$my_obj->{$action}();
}
?>
I hope someone else finds this useful.  Note that doing this allows you to pass params to the function more-or-less in the same way you would to any other class method.
Michele.Manzato at verona.miz.it
29-Sep-2003 08:49
With overload()ed classes call_user_func_* calls real class methods only. If the method does not exist then PHP does not try with the "__call()" magic method (at least until PHP 4.3.3). See this:

<?php
class A
{
   function
A() {}
  
   function
__call($method, $args, &$ret) {
       echo
"__call(): You called '{$method}()'<br>\n";
       return
true;
   }
  
   function
regular() {
       echo
"You called 'regular()'<br>\n";
   }       
};
overload("A");

$a = new A;

$a->regular();                          // Works, calls regular()
call_user_func(array(&$a, "regular"));  // Works, calls regular()

$a->hello();                            // Works, calls __call()
call_user_func(array(&$a, "hello"));    // Does NOT work!
?>
Carl
28-Jul-2003 11:53
I had a problem where I wanted to parameterize a callback. The end called was in an external class, but I needed to save some state for the callback that didn't make sense to keep in the original object, as it might change from call to call...

<?php
class foo
{
   function
foo()
   {
      
$str = "Hello There";

      
$str2 = "Carl";

      
$that =& new holder($str);

      
call_user_func(array(&$that, 'callback'), $str2);
   }
}

class
holder
{
   function
holder($aParam)
   {
      
$this->param = $aParam;
   }

   function
callback($aStr)
   {
       echo
"A=$this->param, B=$aStr\n";
   }
}
?>
matt at tasonline dot com
23-Nov-2002 12:24
On PHP 4.2.3 (not sure about older releases) you can send objects by reference by sending the reference from call_user_func()

<?php
function myFunction(@$obj)
{
  
$obj->doThis('hello');
   return
0;
}

$myObj = new CObject();

call_user_func('myFunction', @$myObj);
?>
phil at gettcomm dot com
21-May-2002 07:51
if you need to get a reference back from a method, you can work around call_user_func()'s shortcomings like this:

<?

$globalObj
;

class
tClass
{
   function &
instance()
   {
       global
$globalObj;
       if(!
is_object($globalObj))
       {
          
$globalObj = new tClass();
       }
       return
$globalObj;
   }
}

$classname = "tClass";
# calling the function this way won't
# return a reference.
$test = &call_user_func(array($classname,"instance"));
# but if we call it again with the instance
# that we just got, it'll be the right
# one
$test = &$test->instance();
# so test is now a reference to $globalObj, just like it should be

# let's verify it:
$test->blah=1;

echo
"<pre>";
print_r($test)."\n";
print_r($globalObj);
echo
"</pre>";
# there, now it behaves just like you'd expect

?>
teleware at mind dot net
08-Apr-2002 01:34
I ran into some quirky behavior using call_user_func with an object.  The function parseAction() below lets me call any of my object's methods by passing the name of the method into a page (e.g. http://xyz.com/page.php?action=login).

<?php
class MyClass {

   function
parseAction($actionKey)
   {
       global
$METarget;

       if(
method_exists($this,$actionKey))
       {
          
call_user_func(array(&$this,$actionKey));
           return;
       }
       else
       {
           exit(
"Unknown action keyword: $actionKey");
       }
   }

   ...
  
// other methods
  
...
}
?>

I found that my member variables weren't always being updated correctly.  The numberic values were preserved but the string variables retained their old value.  The solution was to put the reference operator '&' in front of the object's variable.  In this case it's $this because I'm calling it from within the object but this was also true when calling parseAction from an instanciated object e.g. call_user_func(array(&$myObject,$actionKey))
dougqh at hotmail dot com
07-Mar-2002 05:16
The previous note I posted had an error in the source code.  That has been corrected in this note.

Note, that returning by reference does not work properly when the function
is called using call_user_func.

This example illustrates the problem...

$globalVar = 0;

function &staticFunction()
{
   global $globalVar;
  
   return $globalVar;
}

$result =& call_user_func( "staticFunction" );

$result = 3;

print "result:" . $result . "<br/>\n";
print "globalVar: " . $globalVar . "<br/>\n";

$result2 =& staticFunction();

$result2 = 3;

print "result2: " . $result2 . "<br/>\n";
print "globalVar: " . $globalVar . "<br/>\n";

The above code results in the following output ...
Note that $result is not a reference to $globalVar.

result:0
globalVar: 0
result2: 3
globalVar: 3

Also, the use of call_user_method is now deprecated in favor of passing
array( &$object, $method ) as the function to call_user_func.  This is
reported when error reporting is set to E_ALL in the latest versions of
PHP.
danyloco at yahoo dot com
17-Jul-2001 04:31
I was trying to call multiple functions within a class, and after a brain frying experience this is what came out... hope it helps:

<?php
class Foo {
 function
hey1($id){echo "In hey1";}
 function
hey2($id){echo "In hey2";}
 
#... and so forth ...
 
function runtest($id) {
  
#the fun part :)
  
for($i=1; $i<=2; $i++) {
    
$fp = "hey".$i;
    
$this->$fp($id);
}
}
}
?>

It worked like a charm :).
dayiogluNOSPAM at metu dot edu dot tr dot NOSPAM
12-Mar-2001 03:03
Happily call_user_func can now call
methods of some existing objects; added
to the CVS Fri Mar  9 18:09:26 2001 EDT.

Below is an example:

<?php

class provider {
  function
myfunction($x) {
   echo
"burak was at $x\n";
  }
}

class
dispatcher {
  function
process($p2,$p3) {
  
call_user_func($p2, $p3);
  }
}

function
independent()
{
  echo
"just a test";
}

$x= new provider();
$y= new dispatcher();

$y->process(array($x,'myfunction'),"conference");
$y->process(independent,"");

?>
ceco at noxis dot net
28-Nov-2000 09:01
I find it easier in a lot of cases to use something like that
<?
function test($p1){
  echo
$p1."<br>";
  return
$p1/2; // just an example
}

$func = "test";
echo
$func(6);
?>
tetherow at nol dot org
29-Aug-2000 01:39
Trying to call a class method with call_user_function? call_user_method doesn't really work since you need an object to pass to the call.  You can get around it by creating a 'place holder' instance and call_user_method.
andreyhristov at yahoo dot com
22-Aug-2000 06:09
Let say we construct somehow the name of the function. In some cases we can use nested  'switch'  but the alternative is to to use for and parse a string to construct  the  function  name, after than  we also can construct and the
parameter(s) for it. It  is like using of eval. I use it in  one of my projects to construct a name of nested array like
$ar['1999'['july']['29']['19'] , etc. the problem is in that I'm parsing a string to construct the name. If I've {1:2:3}  the array name  will be $ar['1']['2']['3'] but if i've
{1:2:3:4:5} it will  be $ar['1']['2']['3']['4']['5'].  Eval is the only way (very hard because of characters escaping is needed)  to do it. So this function is of the type of EVAL().
USE IT wherever your script is  'self-modified';

Citas célebres

El hombre que es poeta a los veinte años no es poeta: es hombre. Si es poeta después de los veinte años, entonces es poeta.

Charles Péguy
Escritor francés
(1873-1914)
Citas en tu mail
©Contenidos Gratis

Ilusiones Opticas
ilusion_optica_052.jpg
Contenidos Web

Chiste de... Se abre el telón
Tortitas

Se abre el telón y aparece un señor vendiendo tortas. Se cierra.

Se vuelve a abrir y el señor sigue vendiendo tortas. Se cierra.

Se abre un vez más y aparece vendiendo hamburguesas. Se cierra.

- ¿Cómo se llama la película?

- El Extortista.
Chistes en tu mail
©ContenidosGratis

Humor Gráfico
humor_grafico_011.jpg
Contenidos Web

Inicio | Acción | Estrategia | Palabras | Puzzles | Solitarios | Foro Trucos
Cake ManiaCake Mania
Jugadores: 6835
Categoría del juego: Acción
Objetivo del juego: Ayuda a Jill a recuperar la pastelería de su abuela llevando su propia pastelería; consigue clientes y gana dinero.
Rainbow WebRainbow Web
Jugadores: 2199
Categoría del juego: Puzzles
Objetivo del juego: Rompe un pegajoso hechizo y salva un reino de fantasía en Rainbow Web. Tendrás toneladas de diversión mientras juegas a este mágico desafío para la mente.
Mahjongg FortunaMahjongg Fortuna
Jugadores: 12462
Categoría del juego: Solitarios
Objetivo del juego: Velocidad y habilidad mental son las armas más importantes en esta versión de un antiguo juego asiático. Despeja el tablero lo antes posible haciendo clic en las fichas iguales y gánate la fama eterna de la puntuación más alta.
Chainz 2Chainz 2
Jugadores: 6955
Categoría del juego: Puzzles
Objetivo del juego: Entra en el mundo de las combinaciones con Chainz 2: Relinked, emocionante secuela del exitazo del año pasado, Chainz. Gira eslabones y crea combinaciones de 3 ó más.
DeliciousDelicious
Jugadores: 4405
Categoría del juego: Acción
Objetivo del juego: ¿Eres un as de la multitarea? ¿Quieres que tus clientes estén contentos? ¡Pues Delicious es tu juego! Sacia el apetito de los clientes y tenlos contentos; ¡no te arriesgues!
BookwormBookworm
Jugadores: 4568
Categoría del juego: Palabras
Objetivo del juego: Junta las letras para formar palabras. ¡Las palabras más largas valen más puntos!
ZumaZuma
Jugadores: 4976
Categoría del juego: Acción
Objetivo del juego: Controla el ídolo de la rana de piedra de los antiguos Zuma en este intrigante enigma de acción. ¡Dispara bolas para formar conjuntos de tres, pero si dejas que lleguen a la calavera dorada morirás!
Jewel of AtlantisJewel of Atlantis
Jugadores: 3798
Categoría del juego: Puzzles
Objetivo del juego: Descubre la ciudad hundida de la Atlántida y busca valiosos tesoros. Viaja más allá de las profundidades del mar y vive trepidantes aventuras en Jewel of Atlantis.
Jewel QuestJewel Quest
Jugadores: 3727
Categoría del juego: Puzzles
Objetivo del juego: Convierte la arena de la antigua selva en oro tan rápido como puedas juntando grupos de 3 elementos. ¡Los grupos más grandes valen más puntos!
Bejeweled 2Bejeweled 2
Jugadores: 3659
Categoría del juego: Puzzles
Objetivo del juego: Con cuatro modos de juego únicos y fascinantes, nuevas piezas de juego explosivas e imponentes fondos planetarios, Bejeweled 2 es mucho más adictivo que nunca.
Contenidos gratis en tu webSiguiente >>

Fotos divertidas
fotos_increibles_0281.jpg
Contenidos Web
microrobots avion deportes riesgo recetas cocina canaria juegos online gratis moto motociclismo horoscopos naranjas valencianas surf canarias montañismo ciudades turismo postales gratis library Horoscopos Diarios Windsurf Canarias
fregadero microondas placa electrica bañopreparar camper pantalla plananevera compresor electricacamper fiat ducato camper baño quimicomampara enrollable bañocamper aire climatizadofurgoneta surf windsurffurgoneta surf windsurftelevisor furgonetas camperfurgonetas camper cama

Sudoku del día
Nivel de dificultad: Fácil



Cómo jugar:
El juego consiste en colocar los números del 1 al nueve de tal forma que no se repita el mismo número en la columna, fila y caja (bloques 3x3 enmarcados).

©Contenidos Gratis | Sudoku en tu mail
Sucedió el...

30 de agosto de 1617

Fallece Santa Rosa de Lima, por la que se celebra el "Día de la Patrona de América".
Efemérides en tu mail
©Contenidos Gratis
windsurf canarias youtube porno canarias baleares valencia madrid fallera mayor campus party alcacer feria valencia fernando alonso loterias dinero inversiones violencia de genero makro empresas cartera soledad tolerancia metro valencia gobierno de españa violencia de genero UIMP navidad