Ver Mensaje Individual
  #8 (permalink)  
Antiguo 05/01/2012, 15:46
marco64yes
 
Fecha de Ingreso: septiembre-2010
Mensajes: 350
Antigüedad: 13 años, 7 meses
Puntos: 9
Exclamación Respuesta: llamar al metodo sin pasar por constructor

Cita:
Iniciado por GatorV Ver Mensaje
El parámetro static aunque es opcional debe de ser requerido esto es porque en versiones futuras de PHP al llamar a un método de forma estatica, sin este ser estatico va a producir un FATAL_ERROR, así que es recomendable desde ahora usar static cuando el método es estatico:

Código PHP:
Ver original
  1. class Matematicas
  2. {
  3.        public static function suma($val1, $val2)
  4.        {
  5.              return $val1 + $val2;
  6.        }
  7. }

Lo usas así:
Código PHP:
Ver original
  1. $suma = Matematicas::suma(1, 2);

Ten en cuenta que si dentro de Matematicas::suma() usas $this, el compilador te generará un fatal_error ya que es necesario entonces usarlo mediante la instancia que creaste (usando el operador new).

Saludos.
Perfecto mcuhas gracias por la explicación ya lo hice pero ahora me sal esto:

Fatal error: Using $this when not in object context in line...

Yo tengo esto asi como me mencionó Patriarka al igual que tú:
[PHP]
$valDato = miClase::obtenDatos();
$valDato->cont = "p110";
PHP]

Esto debido a que en mi metodo tengo esto: $this->cont
Así como lo ejemplifique arriba ($valDato->cont = "p110";) deberia de asignarle ese valor no ??

Código PHP:
<?php  function __construct($value,$id,$valor,$cont,$total){ 
     
    
$valoresBD $this->porcionesTablaAlimentosBD() 
    
$this->nombre $valoresBD["NOMBRE"]; 
  
      
    } 
      
    function 
obtenDatos(){ 
    include(
$_SERVER['DOCUMENT_ROOT']."/conexion.php");     
    
$obtenValoresAlimentos "SELECT NOMBRE FROM grupos WHERE ID = {$this->cont}"
    
$querymysql_query($obtenValoresAlimentos,$conexion) or die (mysql_error()); 
    
mysql_close($conexion); 
    return @
mysql_fetch_array($query); 
    } 
?> 
}
GRACIAS!!