Comunidad PHPeros
Lenguajes => PHP => (POO) Programación Orientada a Objetos => Mensaje iniciado por: Siquillote en 19 de Mayo de 2010, 12:51:42 pm
-
Hola, pues empezando a estudiar POO, quería obtener un ejemplo claro y simple y me fijé en la firma de Focux que tenía un ejemplo. Pues intentando aprender, me lo estudié primero y luego lo intente hacer solito y claro, llega el problema. Lo hago y me sale error; me fijo en la firma de
Focux y en realidad todo está clavado solo que cambian los nombres.
<?
class miClase{
var $uno;
var $dos;
private function Siquillote() {
$this->uno="Numero 1";
$this->dos=" Y este el numero 2";
}}
?>
<?php
$todo = new miClase();
$todo-> Siquillote();
echo $todo->uno.$todo->dos;
?>
Entonces, al subirlo al servidor, me sale este error : Fatal error: Call to private method miClase::Siquillote() from context '' in /var/www/vhost/cpsiquillote.es/home/html/otro/numeros.php on line 19
¿Alguien me ayuda? :$
-
La respuesta es obvia, no puedes llamar a funciones privadas desde fuera de la clase...
Para poder llamar a una funcion desde fuera tienes que definirla como public.
-
La respuesta es obvia, no puedes llamar a funciones privadas desde fuera de la clase...
Para poder llamar a una funcion desde fuera tienes que definirla como public.
Si, es cierto ha sido un error garrafal mio. Focux lo tenía como public y no se como he llegado a poner private ¿La subsconciencia? :confused:,
gracias Naveda :P
-
Si, es cierto ha sido un error garrafal mio. Focux lo tenía como public y no se como he llegado a poner private ¿La subsconciencia? :confused:,
gracias Naveda :P
Sucede que cuando pones la función privada sólo puedes acceder desde la misma clase. De paso gracias por intentar aprender con mi firma :-[.
-
Sucede que cuando pones la función privada sólo puedes acceder desde la misma clase. De paso gracias por intentar aprender con mi firma :-[.
:confused:, de nada :P jajaja!
Lo que no llego a entender es como he puesto private si ni sabía que podía ponerse private :confused:
-
Talvez como viste "public" tu subconsciente te quizo traicionar y te engañó a que pusieras public (?).
Naah es broma.
Como recomendación:
No hace falta el poner "public" antes de cada función pública, debido a que el navegador sobreentiende que el método es público y puede ser sacado de la clase.
-
Talvez como viste "public" tu subconsciente te quizo traicionar y te engañó a que pusieras public (?).
Naah es broma.
Como recomendación:
No hace falta el poner "public" antes de cada función pública, debido a que el navegador servidor sobreentiende que el método es público y puede ser sacado de la clase.
No te olvides que PHP es un lenguaje server-side, es decir, lo procesa el servidor y devuelve el contenido al cliente que lo interpretara el navegador.
No confundir servidor con navegador :P
-
Ups, se me fué xD
-
Como recomendación:
No hace falta el poner "public" antes de cada función pública, debido a que el servidor sobreentiende que el método es público y puede ser sacado de la clase.
Yo pienso que independientemente de si el servidor lo reconozca como público al no colocar modo de acceso, debería colocarse... No sé, yo por mi parte prefiero hacerlo así, sobre todo porque cuando necesite aplicar otros lenguajes como Java o C++, no me pase que por ejemplo en C++ al no colocar nada, lo reconozca como privado (eso me han comentado), a diferencia de Java que también lo reconoce como público y de esta manera no confundirme jeje...
-
Lo mejor sin duda es especificarlo siempre, así se ayuda también a potenciar la lectura del código y te adaptas más al modo de programar de la comunidad PHP.
Hay una convención entre programadores PHP sobre como escribir el código para fomentar su lectura, compresión y demás. Entre muchisimas otras, esta es una de las cosas que se mencionan, el poner public aunque no sea necesario.
Por si alguien tiene curiosidad:
http://framework.zend.com/wiki/display/ZFDEV/PHP+Coding+Standard+(draft) (http://framework.zend.com/wiki/display/ZFDEV/PHP+Coding+Standard+(draft))
Saludos!