is_null very slow

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Peter Croft

    is_null very slow

    I am a newcomer to php; I recently loaded a binary copy (5.0.3) onto my PC
    running win2k and Apache 2.0.52.
    It seems to work fine except that it is very slow running the function
    is_null e.g. the dummy program below -
    <?php
    for($i=0; $i<1000; $i++) {
    if(is_null($x)) $y=0;
    }
    echo 'done'
    ?>
    This takes around 30 seconds to run and the disk is accessed continuously.
    A friend ran it under both win2k and Linux and it finished in under a
    second. Have I set up something wrong? As I say everything else seems fine.
    Thanks for any help.
    Peter Croft


  • Andy Hassall

    #2
    Re: is_null very slow

    On Wed, 8 Jun 2005 22:11:55 +0100, "Peter Croft"
    <peter_croft@te xtandvideo.co.u k> wrote:
    [color=blue]
    >I am a newcomer to php; I recently loaded a binary copy (5.0.3) onto my PC
    >running win2k and Apache 2.0.52.
    >It seems to work fine except that it is very slow running the function
    >is_null e.g. the dummy program below -
    ><?php
    >for($i=0; $i<1000; $i++) {
    > if(is_null($x)) $y=0;
    > }
    >echo 'done'
    >?>
    >This takes around 30 seconds to run and the disk is accessed continuously.
    >A friend ran it under both win2k and Linux and it finished in under a
    >second. Have I set up something wrong? As I say everything else seems fine.[/color]

    That would produce 1000 warnings under a sensible error_reporting
    configuration.

    Perhaps your copy is logging warnings to a file, whereas your friend's has
    error reporting disabled entirely.

    --
    Andy Hassall / <andy@andyh.co. uk> / <http://www.andyh.co.uk >
    <http://www.andyhsoftwa re.co.uk/space> Space: disk usage analysis tool

    Comment

    • Peter Croft

      #3
      Re: is_null very slow

      Thanks - that seems to be the answer.
      I see I misunderstood is_null. What I was trying to do was to find which
      values in an array had not been assigned to
      and then give them a value
      (It is more convenient for me to do things this way than to assign default
      values to start with.)
      e.g.
      $x[0]=1;
      $x[101]=22;
      for($i=0; $i<1000; $i++) {
      if(is_null($x[$i])) $x[$i]=$i;
      }
      I have just read about isset - is that the right way to do it?
      To a php-newbie it seems a bit strange that some elements in an array can be
      considered undefined whilst others aren't.
      Cheers,
      Peter



      "Andy Hassall" <andy@andyh.co. uk> wrote in message
      news:08oea15ohc gacho64ngn45e06 kg1vpouv2@4ax.c om...[color=blue]
      > On Wed, 8 Jun 2005 22:11:55 +0100, "Peter Croft"
      > <peter_croft@te xtandvideo.co.u k> wrote:
      >[color=green]
      > >I am a newcomer to php; I recently loaded a binary copy (5.0.3) onto my[/color][/color]
      PC[color=blue][color=green]
      > >running win2k and Apache 2.0.52.
      > >It seems to work fine except that it is very slow running the function
      > >is_null e.g. the dummy program below -
      > ><?php
      > >for($i=0; $i<1000; $i++) {
      > > if(is_null($x)) $y=0;
      > > }
      > >echo 'done'
      > >?>
      > >This takes around 30 seconds to run and the disk is accessed[/color][/color]
      continuously.[color=blue][color=green]
      > >A friend ran it under both win2k and Linux and it finished in under a
      > >second. Have I set up something wrong? As I say everything else seems[/color][/color]
      fine.[color=blue]
      >
      > That would produce 1000 warnings under a sensible error_reporting
      > configuration.
      >
      > Perhaps your copy is logging warnings to a file, whereas your friend's[/color]
      has[color=blue]
      > error reporting disabled entirely.
      >
      > --
      > Andy Hassall / <andy@andyh.co. uk> / <http://www.andyh.co.uk >
      > <http://www.andyhsoftwa re.co.uk/space> Space: disk usage analysis tool[/color]



      Comment

      • Peter Fox

        #4
        Re: is_null very slow

        Following on from Peter Croft's message. . .[color=blue]
        >To a php-newbie it seems a bit strange that some elements in an array can be
        >considered undefined whilst others aren't.[/color]

        You often find empty building plots in a street.

        Some houses are vacant. - $house[67]=0;

        Some may not be built or have been demolished.
        - unset($house[45])


        --
        PETER FOX Not the same since the e-commerce business came to a .
        peterfox@eminen t.demon.co.uk.n ot.this.bit.no. html
        2 Tees Close, Witham, Essex.
        Gravity beer in Essex <http://www.eminent.dem on.co.uk>

        Comment

        • cyberhorse

          #5
          Re: is_null very slow

          Why don't you use isset() or empty() instead then?

          Comment

          Working...