Curso POO: Clase 2 Parametros de las class y su funcion

  • Iniciador del tema Iniciador del tema cavoso
  • Fecha de inicio Fecha de inicio

cavoso

Usuario Casual nvl. 2
31 May 2008
2.273
15
37
Chillan
www.cavoso.cl
antes de comenzar a sugerencia de Aguil@ les recuerdo que este curso no es para principiantes en php asi que tengan ojo al momento de querer aprender tambien a ejemplo de VenenoxHC colocare los codigos de php con los colores correspondiente a cada uno a diferencia del negro que lo colocare en blanco ya que sino no lo van a ver en el foro.

codigos para recordar:
//segido de texto = comentario de 1 sola linea
/* segido de
texto */
= contenido de varias lineas
<? y <?php = apertura de codigo php
?> = Cierre de codigo php

especificacion de colores:
"rojo" = texto dentro de una variable o texto que se mostrara tal cual
azul = funciones de php o mysql (depende de la funcion)
negro = variable

preguntas de la clase anterior:
pregunta:
Que mejor para aprender con un buen ejemplo??? xP

Y yo cabeceandome como hacer que una variable dentro de una función la lean otras funciones...
Con una class y un par de variables bastaba y sobraba ¬¬#...

una pregunta en la class Prueba abria sido mucha diferencia si a las funciones les ponía public??
afectaba a los $this->??

eso gracias que sigan los cursos xPP
Dozzie pregunta por el ejercicio que iso pttmix y la verdad es que si hay alguna diferencia con colcar public a una funcion y si esto afecta a los $this->

respuesta:
si hay diferencia ya que como pttmix coloco la funcion si este parametro la funcion quedo automaticamente como public lo que causa que esta funcion pueda ser modificable desde afuera de la class, pero no hay ninguna diferencia para las $this-> ya que esta estaban dentro de la misma class

ahora empezamos con el curso.

las $this-> son parametros que sirven para llamar variables dentro de la class, estos tambien pueden llamar funciones pero solo dentro de la misma class
ej:
<?
class ejemplo{
private $dia;
private $hora;
private $persona
private function dia($d){
$this->dia=$d;
}
private function hora($h){
$this->hora=$h;
}
private function saludo($p){
$this->persona=$p;
echo 'Hola '.$this->persona.' es el dia '.$this->dia.' y son las '.$this->hora;
}
}
?>
como pueden apreciar utilizando las $this-> he mesclado todas las funciones que he usado anterior mente la funciones se usan de forma normal ahora si quisiera llamar a una funcion puedria hacerlo con el $this-> de la sigiente forma:
$this->funcion(); //funcion es el nombre de la funcion dentro de la class que utilizamos
tengan en cuenta que ";" (punto y coma) es para el cierre


los atributos public, privete y protected sirven para darle a las funciones y a las variables siertas proteciones contra la modificacion externa
ej: utilizando la misma class anterior y previamente iniciada como $saludo

$saludo->persona="juan"; /* esto dara error ya que la variable persona esta configurada como privada lo que hace que modificarla de esta manera sea imposible */ en el caso de que la variable persona ubiera sido publica (public) se ubiera podido modificar de esta forma, considerando esto pueden pensar que la mejor manera de trabajar con las variables de una class es colocandolas como privadas (private) sin embargo si las clas se quieren eredar al estar como privada estas no podran ser eredadas por la otra clas y produciran error sin embargo para que esto no ocurra se les puede colocar el atributo protected el cual impide que sean modificadas de forma externa pero permite eredarse a otra class.

otro parametro que es muy util dentro de las class es la funcion __construct la cual permite construir la class con variables fijas en cada objeto como lo iso El Fin en su tarea, lo que el iso fue lo sigiente:
Hice la tarea aunque no me haya inscrito jojojojo.

clase "clases/persona.php"
Código:
<?php
class Persona
{
    private $anio_actual=2011;
    private $edad;
    function __construct($anio_nacimiento)
    {
        $this->edad=$this->anio_actual-$anio_nacimiento;
    }
    public function presentarse()
    {
        return "tengo {$this->edad} años de edad";
    }
}
?>

archivo principal:
Código:
<?php

include "clases/persona.php";

$juan=new Persona(1984);
echo $juan->presentarse();

?>

Lo hice algo distinto para que no tengamos los mismos codes, así se aprende más. Un Saludo.

y como pueden ver en su codigo para mostrar la edad es mas pequeño que el de los demas que isieron la tarea ya que la funcion construct permitio que el agregara una variable en el mismo instante en el que inicia el objeto.

lo unico necesario para que la funcion construct funcione es escribirla bien y saber especificamente que es lo que van a hacer dentro de ella. la funcion constructo se escribe asi: funcion __construct(){ ya saben que dentro del () se colocan las variables que quiern agregar para la funcion, yo en lo personala utilizo esta funcion para la class de mysql para agregarle los datos de conexion a la base de datos y de paso para iniciar la conexion a esta.

y lo ultimo para terminar esta clase es lo que el mismo VenenoxHC
agrego en la clase anterior, aqui les dejo la cita de lo que el dijo: (ya que no necesita explicacion)

excelente... pero hay una cosa que puedo agregar
a partir de php/5 se puede ocupar variables public private en las clases
en versiones php4 solo se debe inicializar la variable de esta manera

var $nombrevariable;}

A DEMAS

<?php
class Carrito {
/* Ninguna de estas expresiones funciona en PHP 4. */
var $fecha_hoy = date("Y-m-d");
var
$nombre = $primer_nombre;
var
$duenyo = 'Fred ' . 'Jones';
/* Aunque, las matrices que contienen valores constantes funcionan */
var $items = array("VCR", "TV");
}

/* Asi es como debe declararse. */
class Carrito {
var
$fecha_hoy;
var
$nombre;
var
$duenyo;
var
$items = array("VCR", "TV");

function
Carrito() {
$this->fecha_hoy = date("Y-m-d");
$this->nombre = $GLOBALS['primer_nombre'];
/* etc. . . */
}
}
?>

en esta clase no hay tarea ya que no la pescaron mucho en la clase enterior.
espero que les guste y hasta la proxima clase
 
excelente el medio trabajo hacer esto ...igual como comentario o apreciacion ..podrias usar el punto bajo el simbolo:
"
snap20110907jn738s4g92.png
" en modo avanzado para escribir(o pegar) tus codigos en una especie de "cita" ;) asi ...
Código:
[COLOR=#000000]<?
echo "hola";
?>[/COLOR]
eso si al parecer tiene un problema esta forma de citar , cuando quieras controlar en "vista previa" no se ve el contenido esta todo en negro ...pero si "publicas" sale bien ...es solo una idea ;)

mientras mas leo, mas me cuesta y comprendo ...no me apetece ser programador :D mejor diseñador ! jajajaj (respect a los que programan )
 
excelente el medio trabajo hacer esto ...igual como comentario o apreciacion ..podrias usar el punto bajo el simbolo:
"
snap20110907jn738s4g92.png
" en modo avanzado para escribir(o pegar) tus codigos en una especie de "cita" ;) asi ...
Código:
[COLOR=#000000]<?
echo "hola";
?>[/COLOR]
eso si al parecer tiene un problema esta forma de citar , cuando quieras controlar en "vista previa" no se ve el contenido esta todo en negro ...pero si "publicas" sale bien ...es solo una idea ;)

mientras mas leo, mas me cuesta y comprendo ...no me apetece ser programador :D mejor diseñador ! jajajaj (respect a los que programan )

gracias por la idea pero no quiero mostrar el codigo con code xk encuetro que para aquellos que vean por primera ves el codigo no van a saber que es una funcion, variable, texto o ordenes asi que colocandole los colores es mejor asi los usuarios pueden saber que hay mas que solo lineas escritas implicadas en el codigo
 
Buena compadre, muy productiva la clase, aunque la termine de ver recién porque me salieron cachos en la pega... Ojala siga así aportando y contribuyendo a la Zona.
 
hola, quisiera hacer una pregunta profeeeee!

cuantos constructores se pueden hacer en una clase?
y como funcionaria aca

$juan=new Persona(1984);<----ya que aki se manda el valor al constructor

de antemano muchas gracias
 
hola, quisiera hacer una pregunta profeeeee!

cuantos constructores se pueden hacer en una clase?
y como funcionaria aca

$juan=new Persona(1984);<----ya que aki se manda el valor al constructor

de antemano muchas gracias

bueno el constructo (__construct) solo se puede colocar una vez ya que como su nombre lo indica sirve para construir el objeto, solo se puede usar una ves ya que con el se inicia el objeto, claro que se puede iniciar cuantas veces se quiera mintras sen en objetos distintos (solo 1 vez por objeto) y para utilizar los valores que se ingresan atraves del constructor solo debes agregarlos en un $this-> ej:


<?
class persona{
private $anio;
public function __construct($year){
$this->anio=$year
}
}

?>


el $this->anio que cree lo puedes utilizar en otra funcion dentro de la class si asi lo quieres y de esta forma pasar dicha variable entre las distintas funciones si se requiren asi puedes pasar el año que ingresaste por el constructor a la funcion mostrar por ejemplo y ahi mostar los datos y despues simplemente agregando la funcion mostrar en la pagina de muestra
 
Se agradece compadre por la respuesta y por avisar que estaba listo la 2ª parte =)
Empezando a usar construct, también utilizando las subclases...
Esperando el 3º
nos vemos
 
bueno el constructo (__construct) solo se puede colocar una vez ya que como su nombre lo indica sirve para construir el objeto, solo se puede usar una ves ya que con el se inicia el objeto, claro que se puede iniciar cuantas veces se quiera mintras sen en objetos distintos (solo 1 vez por objeto) y para utilizar los valores que se ingresan atraves del constructor solo debes agregarlos en un $this-> ej:


<?
class persona{
private $anio;
public function __construct($year){
$this->anio=$year
}
}

?>


el $this->anio que cree lo puedes utilizar en otra funcion dentro de la class si asi lo quieres y de esta forma pasar dicha variable entre las distintas funciones si se requiren asi puedes pasar el año que ingresaste por el constructor a la funcion mostrar por ejemplo y ahi mostar los datos y despues simplemente agregando la funcion mostrar en la pagina de muestra

GRACIAS me quedo clarito...