Nueva pregunta

Pregunta:

Fecha: 03-02-2017 16:58:34 (En Español)

Tema clases en PHP: problema al escribir una clase sencilla, no visualiza[Resuelta]

Estoy estudiando clases en php y este es un ejemplo de una página, ya van varios como este modelo que lo hago y la web me queda en blanco otras clases de otro estilo si se dejan ver, ya probe con 3 IDE entre ellos sublime text al igual que varios exploradores pero nada, agradezco los comentarios, este es un ejemplo del código que estoy estudiando:

<?php 
class MiClaseDePhp{
	public $nombre = 'Claudio';
	public function accion(){
		echo 'hola mundo';
	}
}
$a = new MiClaseDePhp();
?>
Etiquetas: Empezar a programar - PHP - Pregunta Votos: 1 - Respuestas: 7 - Vistas: 13 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 04-02-2017 14:38:45 Hola

    Lo que te falto es invocar al método accion() de esta manera $a->accion();

    Codigo completo

    <?php 
    class MiClaseDePhp{
    public $nombre = 'Claudio';
    public function accion(){
    echo 'hola mundo';
    }
    }
    $a = new MiClaseDePhp;
    $a->accion();


    Para hacerlo como pretendías con solo instanciar a la clase debes de tener un constructor empleando __construct() sobre este metodo aqui esta la info de la doc oficial de PHP, aqui otro de phpya

    Quedando de esta manera:
    <?php 
    class MiClaseDePhp{
    public $nombre = 'Claudio';
    function __construct(){
    echo 'hola mundo';
    }
    }
    $a = new MiClaseDePhp;
    


    Espero que te haya servido

    Saludos
      Votos: 4 - Link respuesta
     
  • Fecha: 04-02-2017 15:45:26 muchas gracias perfecto , si funciono ya vi el error muy amable walter   Votos: 0 - Link respuesta
     
  • Fecha: 04-02-2017 16:32:09 De nada Carlos
    Que continúes aprendiendo ;)
      Votos: 1 - Link respuesta
     
  • Fecha: 04-02-2017 20:38:22 solo comento aqui para decir compañero Carlos que si ya resolvieron su pregunta o duda por favor seria amable de cambiar el estado a resuelto eso nos ayuda a los que ayudamos en la comunidad en saber que pregunta ya fue resuelta y evitarnos tener que entrar a cada pregunta... solo digo owo no es una obligacion es una buena regla de esta comunidad.

    Gracias..

    Ahora compañero Walter Sanchez hay un pequeño detalle en su codigo del __construct de php orientado a objetos; recalco: no es necesario esto pues como ven asi funciona en su ejemplo pero siempre se debe que declarar de esta forma para la buena practica: public function __construct() {}

    <?php
    class MiClaseDePhp{
    public $nombre = 'Claudio';
    
    public function __construct($othername,$number){
    echo $this->nombre ." llama a " . $othername . " Para Pedir su numero que es: " . $number . '<br />';
    }
    
    public function clear($switch) {
    return $switch;
    }
    
    public function __destruct() {
    if($this->clear(true) == true): // use false and no show
    SELF::__construct(null,null); // limpiamos variables menos el argumento de la clase del metodo __construct()
    $this->nombre = null; // limpiamos el argumento el unico que existe para limpiar memoria
    echo $this->nombre; // comprobamos si realmente si se borro el argumento $nombre de la clase
    endif;
    }
    }
    $a = new MiClaseDePhp("Carlos", "+52 33454567");
    


    ahora explico __construct y __destruct ya 2 metodos hechos por PHP orientados a objetos siempre deben ser publicos no pueden ser estaticos o privados o protected si no simplemente publicos como se ve en mi ejemplo, otra cosa de estos dos metodos es que siempre se ejecutaranan al momento de la instancia y cual es la instancia?

    pues la variable $a que ya no es una variable si no un?

    Exacto objeto por lo cual es mejor visto que termine con mi ejemplo osea asi: MiClaseDePhp();

    otra cosa el metodo __destruct() generalmente se usa para limpiar variables de los metodos o argumentos de la clase :)

    Espero hubiera servido mi respuesta :')/

    Saludos.
      Votos: 4 - Link respuesta
     
  • Fecha: 05-02-2017 01:01:33 si tienes razon muchas gracias por hacerme caer en cuenta en cerrar mis preguntas resueltas   Votos: 1 - Link respuesta
     
  • Fecha: 05-02-2017 06:36:18 Chrismart Anji muchas gracias por contribuir, en efecto al constructor se puede declarar Public, en el ejemplo que expuse lo implemente como esta declarado en el ejemplo (Ejemplo #1 Utilización de nuevos constructores unificados) de la documentación oficial de PHP en su sentido mas purista para no confundir a Carlos ya que esta aprendiendo.

    Desde ya que es valida tu observación.
    Saludos
      Votos: 3 - Link respuesta
     
  • Fecha: 06-02-2017 18:07:13 Muy buenas respuestas!

    Chrismart Anji, sólo quiero agregar que el constructor no siempre es público.
    Recuerda que hay patrones de diseño donde el constructor debe deshabilitarse para cumplir con el mismo.

    Saludos
      Votos: 4 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com