phpbar.de logo

Mailinglisten-Archive

[php] dokumenten management

[php] dokumenten management

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Mon, 26 Jul 1999 10:48:30 +0200


Christian Cartus wrote:
> Kristian Köhntopp wrote:
> > Christian Cartus wrote:
> > > mmmh, bis zu php3.06 war interne längenzähler nur int. da passen definiv
> > > nur 32k rein. vielleicht ist das mittlerweile behoben worden. aber gut
> > > zu wissen, daß ich damit danebenlag, das erspart mir zukünfige arbeit.
> >
> > Möglicherweise hängt es von der Plattform ab (Solaris-int: 32 Bit).
>
> ich hasse int!!!

So, ich habe jetzt einmal nachgesehen (php.h):
typedef union {
  long lval;                                      /* long value */
  double dval;                            /* double value */
  struct {
    char *val;
    int len;
  } str;
  char chval;                                     /* char value */
  HashTable *ht;                          /* hash table value */
  struct {
    union {
      void (*internal)(INTERNAL_FUNCTION_PARAMETERS);
      HashTable *statics;  /* static symbol table for user functions */
    } addr;
    unsigned char *arg_types;
  } func;

  struct {
    pval *pvalue;  /* used for implementation of multi-dimensional arrays */
    int string_offset;
  } varptr;
} pvalue_value;

Ein String ist also ein Tupel (len, val), wobei len ein int ist,
wie immer int auf der jeweiligen Plattform definiert ist. Auf
Solaris und in Linux ist int als 32 bit signed value definiert.
In Win32 weiß ich es nicht, ich tippe aber auf 32 bit signed
value.

Kristian

-- 
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.shonline.de/ (GPL)


php::bar PHP Wiki   -   Listenarchive