Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: DownRate en 27 Octubre 2006, 18:58 pm



Título: Classes de PHP
Publicado por: DownRate en 27 Octubre 2006, 18:58 pm
Buenas, estaba probando una clase muy simple escrita en php, en varios servidores (bluehost, globat), el problema es que no funciona?... el ejemplo lo saque de un libro asi que no creo que este mal, alguien sabe porque no funciona?...

Esta es la clase:
Código:
<?php
  # Recipe 2-1
 
  class Bird
  {
    function __construct($name, $breed)
    {
      $this->name = $name;
      $this->breed = $breed;
    }
  }
 
  $tweety = new Bird('Tweety', 'canary');
 
  printf("<p>%s is a %s.</p>\n", $tweety->name, $tweety->breed);
 
  $tweety->price = 24.95;
 
  printf("<p>%s is a %s, and costs \$%.2f.</p>\n",
          $tweety->name, $tweety->breed, $tweety->price);
?>

Asi de simple, lo guardo como "index.php" y no marca ningun error, simplemente no imprime las variables $tweety->name, $tweety->breed, pero si imprime $tweety->price.

Tambien hice una prueba local en mi PC y funciona perfectamente, solo que en los servidores de las compañias que menciono no.

Sera por algun parametro de configuración?
Sera alguna incompatibilidad con la version de PHP?

Gracias por su ayuda.


Título: Re: Classes de PHP
Publicado por: Thaorius en 28 Octubre 2006, 02:18 am
__construct() fue implementado en PHP5, lo debes estar probando en un servidor con PHP4. en PHP4, el constructor es una funcion con el mismo nombre que la clase, te quedaria haci:

Código:
<?php
  # Recipe 2-1
 
  class Bird
  {
    function Bird($name, $breed)
    {
      $this->name = $name;
      $this->breed = $breed;
    }
  }
 
  $tweety = new Bird('Tweety', 'canary');
 
  printf("<p>%s is a %s.</p>\n", $tweety->name, $tweety->breed);
 
  $tweety->price = 24.95;
 
  printf("<p>%s is a %s, and costs \$%.2f.</p>\n",
          $tweety->name, $tweety->breed, $tweety->price);
?>

Saludos


Título: Re: Classes de PHP
Publicado por: DownRate en 29 Octubre 2006, 00:01 am
Tienes toda la razon, revisando la version de los servidores es PHP 4.x

Gracias y saludos.