php-general Digest 14 Aug 2012 21:11:13 -0000 Issue 7922

Topics (messages 318692 through 318700):

Re: Reading class variable value always returns NULL
        318692 by: Reto Kaiser
        318698 by: Reto Kaiser
        318699 by: Robert Williams
        318700 by: Jim Lucas

PHP APC 3.1.11
        318693 by: Vedran Rodic
        318696 by: Daniel Brown

Re: PHP session variables
        318694 by: Tedd Sperling
        318697 by: Robert Cummings

Re: about unlink
        318695 by: Daniel Brown

Administrivia:

To subscribe to the digest, e-mail:
        php-general-digest-subscr...@lists.php.net

To unsubscribe from the digest, e-mail:
        php-general-digest-unsubscr...@lists.php.net

To post to the list, e-mail:
        php-gene...@lists.php.net


----------------------------------------------------------------------
--- Begin Message ---
Hi,

Thanks for your input Robert and Volmar! I have googled again with
"instance variable" instead of "class variable" - but have not found
any similar reports.

I'm pretty sure those are the same objects. The application usually
runs alright. We only see the instance variables becoming NULL since
about a week.

We had 3 small software upgrade coming from debian since we observe
the problem. We think they cannot be related. Still we have reverted
all of those and still see the problem.
Next step is that we setup a exact copy of the machine. Maybe it is a
hardware problem...

Thanks,
 Reto

On Mon, Aug 13, 2012 at 5:09 PM, Robert Cummings <rob...@interjinn.com> wrote:
> On 12-08-12 08:32 AM, Reto Kaiser wrote:
>>
>> Hi,
>>
>> So I have this strange situation where I assign a classvariable a
>> value, but when I read the value it is NULL.
>>
>> The class has one variable declared:
>> =========
>> class A {
>>          private $_cookies;
>> }
>> =========
>
>
> That is a private instance variable NOT a class variable.
>
> To declare a class variable you would do the following:
>
> <?php
>
> class A
> {
>     private static $_cookies;
> }
>
> ?>
>
>
>> In a method of this class I assign this classvariable plus an
>> undeclared classvariable and a local variable the value 1:
>> =========
>> $this->_cookies = 1;
>> $this->_cookies2 = 1;
>> $cookies3 = 1;
>> =========
>>
>> When I now read the values of those variables, the classvariables are
>> NULL while the local variable is 1:
>> =========
>> $logEntry .= 'cookies: ' . var_export($this->_cookies, true) . PHP_EOL;
>> $logEntry .= 'cookies2: ' . var_export($this->_cookies2, true) . PHP_EOL;
>> $logEntry .= 'cookies3: ' . var_export($cookies3, true) . PHP_EOL;
>> =========
>> cookies: NULL
>> cookies2: NULL
>> cookies3: 1
>> =========
>>
>> But when reading the whole object, the classvariables are 1:
>> =========
>> $logEntry .= var_export($this, true) . PHP_EOL;
>> =========
>> A::__set_state(array(
>>     '_cookies' => 1,
>>     '_cookies2' => 1,
>> ))
>> =========
>>
>>
>> This happens periodically on a busy webserver. It seems that when it
>> happens, all classvariables cannot be read anymore (return NULL).
>> After restarting Apache it does not happen anymore, just to happen
>> again after some minutes.
>>
>> The system is current Debian Squeeze:
>> Linux: linux-image-2.6.32-5-amd64
>> Apache: apache2-mpm-prefork 2.2.16-6+squeeze7
>> PHP: PHP 5.3.3-7+squeeze13 with Suhosin-Patch (cli) (built: Jun 10
>> 2012 07:31:32)
>> php -m:
>> https://raw.github.com/gist/3331641/2f7e80bd03abfb728b659634d3f4bac0131f4d6a/gistfile1.txt
>> php -i:
>> https://raw.github.com/gist/3331651/bcf6e3654bf391482627505447848de173d0bbab/gistfile1.txt
>>
>> Does anyone have an idea what could cause this, or how to further debug?
>
>
> I can't really speak to your specific problem (unless you're using two
> different instances of the class), just thought I'd clear up the difference
> between class variables and instance variables.
>
> Cheers,
> Rob.
> --
> E-Mail Disclaimer: Information contained in this message and any
> attached documents is considered confidential and legally protected.
> This message is intended solely for the addressee(s). Disclosure,
> copying, and distribution are prohibited unless authorized.

--- End Message ---
--- Begin Message ---
Hi,

We have since deployed another webserver machine and observe the exact
same behavior there.
So it is not a hardware problem.

We have also disabled various php modules, but this didn't help either.

Any debug suggestions are welcome! :)

Reto

On Tue, Aug 14, 2012 at 10:40 AM, Reto Kaiser <r...@cargomedia.ch> wrote:
> Hi,
>
> Thanks for your input Robert and Volmar! I have googled again with
> "instance variable" instead of "class variable" - but have not found
> any similar reports.
>
> I'm pretty sure those are the same objects. The application usually
> runs alright. We only see the instance variables becoming NULL since
> about a week.
>
> We had 3 small software upgrade coming from debian since we observe
> the problem. We think they cannot be related. Still we have reverted
> all of those and still see the problem.
> Next step is that we setup a exact copy of the machine. Maybe it is a
> hardware problem...
>
> Thanks,
>  Reto
>
> On Mon, Aug 13, 2012 at 5:09 PM, Robert Cummings <rob...@interjinn.com> wrote:
>> On 12-08-12 08:32 AM, Reto Kaiser wrote:
>>>
>>> Hi,
>>>
>>> So I have this strange situation where I assign a classvariable a
>>> value, but when I read the value it is NULL.
>>>
>>> The class has one variable declared:
>>> =========
>>> class A {
>>>          private $_cookies;
>>> }
>>> =========
>>
>>
>> That is a private instance variable NOT a class variable.
>>
>> To declare a class variable you would do the following:
>>
>> <?php
>>
>> class A
>> {
>>     private static $_cookies;
>> }
>>
>> ?>
>>
>>
>>> In a method of this class I assign this classvariable plus an
>>> undeclared classvariable and a local variable the value 1:
>>> =========
>>> $this->_cookies = 1;
>>> $this->_cookies2 = 1;
>>> $cookies3 = 1;
>>> =========
>>>
>>> When I now read the values of those variables, the classvariables are
>>> NULL while the local variable is 1:
>>> =========
>>> $logEntry .= 'cookies: ' . var_export($this->_cookies, true) . PHP_EOL;
>>> $logEntry .= 'cookies2: ' . var_export($this->_cookies2, true) . PHP_EOL;
>>> $logEntry .= 'cookies3: ' . var_export($cookies3, true) . PHP_EOL;
>>> =========
>>> cookies: NULL
>>> cookies2: NULL
>>> cookies3: 1
>>> =========
>>>
>>> But when reading the whole object, the classvariables are 1:
>>> =========
>>> $logEntry .= var_export($this, true) . PHP_EOL;
>>> =========
>>> A::__set_state(array(
>>>     '_cookies' => 1,
>>>     '_cookies2' => 1,
>>> ))
>>> =========
>>>
>>>
>>> This happens periodically on a busy webserver. It seems that when it
>>> happens, all classvariables cannot be read anymore (return NULL).
>>> After restarting Apache it does not happen anymore, just to happen
>>> again after some minutes.
>>>
>>> The system is current Debian Squeeze:
>>> Linux: linux-image-2.6.32-5-amd64
>>> Apache: apache2-mpm-prefork 2.2.16-6+squeeze7
>>> PHP: PHP 5.3.3-7+squeeze13 with Suhosin-Patch (cli) (built: Jun 10
>>> 2012 07:31:32)
>>> php -m:
>>> https://raw.github.com/gist/3331641/2f7e80bd03abfb728b659634d3f4bac0131f4d6a/gistfile1.txt
>>> php -i:
>>> https://raw.github.com/gist/3331651/bcf6e3654bf391482627505447848de173d0bbab/gistfile1.txt
>>>
>>> Does anyone have an idea what could cause this, or how to further debug?
>>
>>
>> I can't really speak to your specific problem (unless you're using two
>> different instances of the class), just thought I'd clear up the difference
>> between class variables and instance variables.
>>
>> Cheers,
>> Rob.
>> --
>> E-Mail Disclaimer: Information contained in this message and any
>> attached documents is considered confidential and legally protected.
>> This message is intended solely for the addressee(s). Disclosure,
>> copying, and distribution are prohibited unless authorized.

--- End Message ---
--- Begin Message ---
I'm not real clear on what's happening. Are you saying that if you assign
values to the protected class members, and then immediately read them,
that they're null? So, there's code something like this:

class Foo {
   public function Something() {
      $this->foo = 1;

      //shows null instead of 1
      var_dump($this->foo);
   }

   protected $foo;
}



Is that right?


Regards,
Bob
--
Robert E. Williams, Jr.
Associate Vice President of Software Development
Newtek Businesss Services, Inc. -- The Small Business Authority
https://www.newtekreferrals.com/rewjr
http://www.thesba.com/







Notice: This communication, including attachments, may contain information that 
is confidential. It constitutes non-public information intended to be conveyed 
only to the designated recipient(s). If the reader or recipient of this 
communication is not the intended recipient, an employee or agent of the 
intended recipient who is responsible for delivering it to the intended 
recipient, or if you believe that you have received this communication in 
error, please notify the sender immediately by return e-mail and promptly 
delete this e-mail, including attachments without reading or saving them in any 
manner. The unauthorized use, dissemination, distribution, or reproduction of 
this e-mail, including attachments, is prohibited and may be unlawful. If you 
have received this email in error, please notify us immediately by e-mail or 
telephone and delete the e-mail and the attachments (if any).

--- End Message ---
--- Begin Message ---
On 08/12/2012 05:32 AM, Reto Kaiser wrote:
Hi,

So I have this strange situation where I assign a classvariable a
value, but when I read the value it is NULL.

Does anyone have an idea what could cause this, or how to further debug?

Thanks,
  Reto


What is your error reporting set to?

Do you have display errors turned on?

Are you saving your errors to a log file?

--
Jim Lucas

http://www.cmsws.com/
http://www.cmsws.com/examples/

--- End Message ---
--- Begin Message ---
Hi,

PHP APC 3.1.11 is marked beta, however it seems to contain important bugfixes.

Is it safe to deploy on production (we're currently using 3.1.9)? Or
it is better to wait for 'stable' release. When is next 'stable'
expected?

Vedran Rodic

--- End Message ---
--- Begin Message ---
On Tue, Aug 14, 2012 at 7:14 AM, Vedran Rodic <vro...@gmail.com> wrote:
> Hi,
>
> PHP APC 3.1.11 is marked beta, however it seems to contain important bugfixes.
>
> Is it safe to deploy on production (we're currently using 3.1.9)? Or
> it is better to wait for 'stable' release. When is next 'stable'
> expected?

    This question is better directed to the PECL development mailing
list (CC'd).  You can - and should - subscribe to that list by sending
a blank email to pecl-dev-subscr...@lists.php.net if you want to
follow along with the discussion and ensure that you receive all
messages in the thread.

-- 
</Daniel P. Brown>
Network Infrastructure Manager
http://www.php.net/

--- End Message ---
--- Begin Message ---
On Aug 13, 2012, at 10:59 AM, Robert Cummings <rob...@interjinn.com> wrote:

> On 12-08-10 04:42 PM, Tedd Sperling wrote:
>> On Aug 10, 2012, at 1:21 PM, Ege Sertçetin <sertce...@itu.edu.tr> wrote:
>> 
>>> Hi. My question will maybe out of topic, I'm sorry.
>>> How can you know that one way will be much slower than other one? I mean, 
>>> how can I learn which function is faster before I test it?
>> 
>> Ege:
>> 
>> No your question is on topic.
>> 
>> This question should be asked on the list, so I'll present Q:A instead of 
>> answering privately
>> 
>> http://www.webbytedd.com/b/timed1/
>> 
>> The code is there -- if you have questions, please post them to the list.
> 
> Ted,
> 
> Please see the current signature for microtime():
> 
>    mixed microtime ([ bool $get_as_float = false ] )
> 
> The optional paramter was added in PHP 5.0.0. I think it's safe to update 
> your habits :)
> 
> Cheers,
> Rob.

Rob:

Fixed.

Thanks -- my habits are always in a state of being updated -- just ask my wife.

Cheers,

tedd

_____________________
t...@sperling.com
http://sperling.com






--- End Message ---
--- Begin Message ---
On 12-08-14 10:41 AM, Tedd Sperling wrote:
On Aug 13, 2012, at 10:59 AM, Robert Cummings <rob...@interjinn.com> wrote:

On 12-08-10 04:42 PM, Tedd Sperling wrote:
On Aug 10, 2012, at 1:21 PM, Ege Sertçetin <sertce...@itu.edu.tr> wrote:

Hi. My question will maybe out of topic, I'm sorry.
How can you know that one way will be much slower than other one? I mean, how 
can I learn which function is faster before I test it?

Ege:

No your question is on topic.

This question should be asked on the list, so I'll present Q:A instead of 
answering privately

http://www.webbytedd.com/b/timed1/

The code is there -- if you have questions, please post them to the list.

Ted,

Please see the current signature for microtime():

    mixed microtime ([ bool $get_as_float = false ] )

The optional paramter was added in PHP 5.0.0. I think it's safe to update your 
habits :)

Cheers,
Rob.

Rob:

Fixed.

Thanks -- my habits are always in a state of being updated -- just ask my wife.

I'm not sure if you're making a joke, but your changes have no effect. You've merely explicitly stated the optional parameter's default value. What I had meant was to change the following:

<?php

$starttime = microtime();
$startarray = explode(" ", $starttime);
$starttime = $startarray[1] + $startarray[0];

?>

To the following :)

<?php

$starttime = microtime( true );

?>

Cheers,
Rob.
--
E-Mail Disclaimer: Information contained in this message and any
attached documents is considered confidential and legally protected.
This message is intended solely for the addressee(s). Disclosure,
copying, and distribution are prohibited unless authorized.

--- End Message ---
--- Begin Message ---
On Tue, Aug 14, 2012 at 4:22 AM, Tolga <kacmazto...@gmail.com> wrote:
> hi, i have a very annoying problem with unlink()
> i use win7 and wamp server (apache 2.2.22 & php 5.4.3)
> when i try to use unlink:
>
> SCREAM: Error suppression ignored for
> Warning: unlink(aaa/bbb.ccc): Permission denied in C:\wamp\www\ddd\index.php
> on line /34/

    What are the specific ownership and permission mode properties on
that exact file and directory?

> neither the folder, nor the files are read-only. i give every user on win,
> all the permissions on folders & files.
> i look on google for same error, but nothing useful. some says 'you need to
> give PHP delete permission' but didnt say how. i run wamp with Run as
> Administrator.
> by the way, php can write, create
> (copy(),file_put_contents(),move_uploaded_file(),mkdir()) files or folders.
> there is no problem with it and there is no problem with deleting (rmdir)
> folders too. but there is problem when it comes to the deleting files.

    Hopefully that's just for development, and you're making much more
serious security considerations for anything production-worthy or even
simply network-facing.

> i really need some suggestions about how to solve this, its really annoying
> and  i dont want to throw my pc to the wall or punch it on the screen.

    Yeah, neither option would resolve the issue anymore.  The
monitor-punch-fix feature was removed in PHP 3.0.4.

-- 
</Daniel P. Brown>
Network Infrastructure Manager
http://www.php.net/

--- End Message ---

Reply via email to