Ir al contenido


Foto

inconveniente con vídeo tutorial del curso php poo


  • Por favor identifícate para responder
1 respuesta en este tema

#1 Angee Leon

Angee Leon

    Newbie

  • Miembros
  • Pip
  • 1 mensajes

Escrito 05 junio 2013 - 09:33

Buen día he comenzado a estudiar este curso por Internet, al comenzar con el video tutorial 1 se me presenta los siguiente inconveniente:

Codigo index.php

<?php
require_once ("class/class.php");
?>
<html>
<head>
<title></title>
</head>
<body>
<?php
$persona->iniciar("pedro menares");
echo $persona->listar_nombres();
?>
</body>
</html>



Codigo class.php

<?php
//
class persona
{
    //crea atributos

private $nombre=array();

//crear metodos
public function iniciar($nom)
{
$this->nombre=$nom;
}
public function listar_nombres()
{
return $this->nombre;
}
}
$persona= new persona();


?>


El error que resulta al ejecutarlo dice lo siguiente:

nombre=$nom; } public function listar_nombres() { return $this->nombre; } } $persona= new persona(); ?>


Se le agradece su colaboración.

  • 0

#2 jonbra

jonbra

    Advanced Member

  • Miembros
  • PipPipPip
  • 57 mensajes

Escrito 06 junio 2013 - 09:46

Buen día he comenzado a estudiar este curso por Internet, al comenzar con el video tutorial 1 se me presenta los siguiente inconveniente:

Codigo index.php

<?php
require_once ("class/class.php");
?>
<html>
<head>
<title></title>
</head>
<body>
<?php
$persona->iniciar("pedro menares");


el error está aquí, cuando imprimes $persona->listar_nombres realmente no estás imprimiendo nada porque la función no te ha devuelto nada, puesto que el "return $this->nombre" lo tienes en la siguiente función.

echo $persona->listar_nombres();


?>
</body>
</html>



Codigo class.php

<?php
//
class persona
{
    //crea atributos

private $nombre=array();


¿por qué de tu error? porque has utilizado la siguiente función propia como si fuera un __construct();
y a la hora de imprimir un return, además de no imprimir nada, no la has instanciado para que la variable de la clase adquiera el valor que le pasaste como parámetro.


//crear metodos
public function iniciar($nom)
{
$this->nombre=$nom;
}


public function listar_nombres()
{
return $this->nombre;
}
}


otro error es el siguiente, en el ejemplo cesar cancino no explica que deja ya instaciada la clase persona (todas las clases se escriben con mayúscula para seguir la estandarización camel case), lo correcto es iniciar la instancia cada vez que utilices una clase. borra esta línea del documento de la clase y escríbela al principio de la instancia del documento que contiene el html, para que vayas acostumbrándote a seguir un orden en el código.

$persona= new persona();


?>


El error que resulta al ejecutarlo dice lo siguiente:


nombre=$nom; } public function listar_nombres() { return $this->nombre; } } $persona= new persona(); ?>


Se le agradece su colaboración.


si necesitas más ayuda responde
  • 0




IP.Board spam blocked by CleanTalk.