¿Representar estructura de C en PHP?

Iniciado por AlbertoBSD, 21 Mayo 2016, 15:29 PM

0 Miembros y 1 Visitante están viendo este tema.

AlbertoBSD

Muy buen dia.

Estoy tratando de implementar un pequeño programa que hice para hacerlo un servicio WEB... pero no estoy seguro de como aplicarlo en PHP

Tengo la siguiente estrucuta de C

struct temp{
unsigned char *valor;
unsigned int bytes;
};


Mi duda es como implementarlo correctamente en PHP, segun lei lo mas parecido es un clase en PHP

entonces tengo:

Código (php) [Seleccionar]

<?php
class 
temp {
public $valor[];
public $bytes;
}
?>



Mi duda es como decir que $valor tiene que ser de X cantidad;

Por ejemplo cuando leeo desde un archivo X cantidad de bytes en $valor puedo saber que $valor tiene X longitud pero no se como hacerlo a mano... esto es

Voy a crear una instanacia de esa clase y al elemento $valor le quier agregar un valor en el primer elemento y posteriormente tal vez le agrege mas. Simplemente lo agrego como

Código (php) [Seleccionar]
$valor[1] = 200;

He usado arrays pero para este caso no creo que sea lo mas eficiente..
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

xiruko

Hola,

No te he entendido muy bien, pero si quieres limitar la longitud del array, en PHP no hay gestión de memoria ni nada así como en C, por lo que deberás implementar algún método para insertar valores que verifique la longitud actual antes de añadirle un elemento más. Por ejemplo:

Código (php) [Seleccionar]
class temp
{
   private $valor = array();
   private $max_longitud = 0;
   
   public function __construct($longitud=0) {
      $this->max_longitud = $longitud;
   }

   public add($valor) {
      if (count($this->valor) >= $this->max_longitud) return false;
      $this->valor[] = $valor;
      return true;
   }

   public get($indice) {
      if (!isset($this->valor[$indice])) return false;
      return $this->valor[$indice];
   }
}


Saludos!

AlbertoBSD

Excelente muchas gracias es lo que estaba buscando  ;-).

Ya habia empezado algo de codigo y ya con tu respuesta estoy mas seguro de que voy por buen camino..

Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW