Foros del Web » Programando para Internet » PHP »

Acceder a miembros de clase de un parámetro que es un objeto

Estas en el tema de Acceder a miembros de clase de un parámetro que es un objeto en el foro de PHP en Foros del Web. Hola, Imaginad que tenemos este código: Código: <?php class myClass01 { var $dato1; } class myClass02 { var $dato2; } function myGeneralFunction(){ $obj01 = new ...
  #1 (permalink)  
Antiguo 10/06/2013, 11:43
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Acceder a miembros de clase de un parámetro que es un objeto

Hola,

Imaginad que tenemos este código:

Código:
<?php
class myClass01
{
	var $dato1;
}

class myClass02
{
	var $dato2;
}

function myGeneralFunction(){
	$obj01 = new myClass01;
	$obj01->dato1 = "hola";
	$obj02 = new myClass02;
	$obj02->dato2 = "adios";
	myFunction($obj01, $obj02);
}

function myFunction($obj01, $obj02){
	print $obj01->dato1;
	print $obj02->dato2;
}
?>
¿No es un poco raro que en PHP no se definan tipos de datos? Yo vería más lógico esto:

Código:
<?php
...
function myFunction(myClass01 $obj01, myClass02 $obj02){
	print $obj01->dato1;
	print $obj02->dato2;
}
?>
¿No se puede hacer de alguna manera que se indiquen los tipos de datos al menos para los parámetros de una función?

Saludos.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows
  #2 (permalink)  
Antiguo 10/06/2013, 12:14
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Acceder a miembros de clase de un parámetro que es un objeto

en php 5 si tienes forzado de tipos, al menos para ciertas cosas:
http://www.php.net/manual/es/languag...ypehinting.php
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 10/06/2013, 18:15
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Acceder a miembros de clase de un parámetro que es un objeto

puede que en otros lenguajes sea útil definir el tipo de datos de cada variable y/o constante, pero php ofrece la posibilidad de que cada variable adquiera la forma que necesita según el contexto.

Manipulación de tipos
  #4 (permalink)  
Antiguo 10/06/2013, 21:56
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Acceder a miembros de clase de un parámetro que es un objeto

Como te dice @maycolalvarez se puede con PHP 5.0+ pero de todas formas no es ilogico ya que una de las ventajas de los lenguajes interpretados (vs compilados) es que puedes ser mas flexible en algunas cosas.

Sino te gusta PHP puedes hacer lo mismo en .NET o en JAVA
__________________
Salu2!
  #5 (permalink)  
Antiguo 13/06/2013, 09:34
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Acceder a miembros de clase de un parámetro que es un objeto

Estoy tratado de hacer esto:

En types php:
Código:
<?php
class myClass{
    public $a;           
    public $b;
}
?>
En core.php:
Código:
<?php

$myClassInstance = new myClass();

function lowlevel_propagator($myClassInstance)
{
$myClassInstance->a;
}
?>
¿No puedo hacer que la variable $myClassInstance no sea puntero y se acceda a los miembros con . en vez de con -> ?

Saludos.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows
  #6 (permalink)  
Antiguo 13/06/2013, 10:37
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Acceder a miembros de clase de un parámetro que es un objeto

Cita:
Iniciado por letni Ver Mensaje

¿No puedo hacer que la variable $myClassInstance no sea puntero y se acceda a los miembros con . en vez de con -> ?

Saludos.
Los objetos se pasan siempre por referencia y se accede a metodos y atributos con ->

Quieres acceder a que ??? propiedades estaticas ?
__________________
Salu2!
  #7 (permalink)  
Antiguo 13/06/2013, 10:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Acceder a miembros de clase de un parámetro que es un objeto

En PHP el operador "." solamente sirve para concatenar strings, no sirve para acceder a miembros/propiedades/métodos de un objeto.

Saludos.
  #8 (permalink)  
Antiguo 13/06/2013, 11:27
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Acceder a miembros de clase de un parámetro que es un objeto

Me gustaría saber si en vez de hacer:

Código:
<?php

$myClassInstance = new myClass();

function lowlevel_propagator($myClassInstance)
{
$myClassInstance->a;
}
?>
Podría hacer algo como:
Código:
<?php

$myClassInstance = myClass;

function lowlevel_propagator($myClassInstance)
{
$myClassInstance.a;
}
?>
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows
  #9 (permalink)  
Antiguo 13/06/2013, 11:45
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Acceder a miembros de clase de un parámetro que es un objeto

Cita:
Iniciado por GatorV Ver Mensaje
En PHP el operador "." solamente sirve para concatenar strings, no sirve para acceder a miembros/propiedades/métodos de un objeto.

Saludos.
__________________
Salu2!
  #10 (permalink)  
Antiguo 13/06/2013, 11:51
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Acceder a miembros de clase de un parámetro que es un objeto

¡Muchas gracias!
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows

Etiquetas: clase, objeto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:09.