Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #8804

Re: Will this set or get a SESSION variable?

Path csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!news.teledata-fn.de!newsfeed.arcor.de!newsspool3.arcor-online.net!news.arcor.de.POSTED!not-for-mail
Content-Type text/plain; charset="UTF-8"
Message-ID <50526567.RGmRr8SH6j@PointedEars.de> (permalink)
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Reply-To Thomas 'PointedEars' Lahn <php@PointedEars.de>
Organization PointedEars Software (PES)
Date Fri, 22 Mar 2013 15:41:36 +0100
User-Agent KNode/4.8.5
Content-Transfer-Encoding 8Bit
X-Face %i>XG-yXR'\"2P/C_aO%~;2o~?g0pPKmbOw^=NT`tprDEf++D.m7"}HW6.#=U:?2GGctkL,f89@H46O$ASoW&?s}.k+&.<b';Md8`dH6iqhT)6C^.Px|[=M@7=Ik[_w<%n1Up"LPQNu2m8|L!/3iby{-]A+#YE}Kl{Cw$\U!kD%K}\2jz"QQP6Uqr],./"?;=4v
Face iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEXTxa4RFk5dUWANED8PFEfy7+MGBiW+n3ZNF/QuAAACaElEQVQ4jVXUwVOcMBQG8Dc7Rc4PUntdWV2uxjDpGaGeozOp1woar4jd5t/v9wLstMwsA/ntlxdCAgUc1hjTc9/JCZfGoo3wG3HdmdAWrIJRHe7GM/TmpY5VFefuVcAkkPbLIaN8rmPmjloyZxgyR3GuJ4K0AGtJ2htz8o7yqikm759fldQXaMpbDzjKAG+8v+AugVTOPO5DOjLvGtUYQwh0CPjnVMyGd+8/GfUB5nLKJDD2aLDh5HYyMDJGDwQIo2ZmZcKbowNmAdB/AzyFhrmF2MHRb0QJJfaAnwGB6orZhoykLzJtGwF/xpYxI1dswomiUj3gTuAIqCn/4C7cULwGNBtwMTk3Y4LfKB5YUaOKBKYtpplm7u0vip8tU1NWWyI/7XdcSuIDoMt6rVHMWT0DbjHPGqDqZVSa6zleLcUTcIKLoMv3ueJluALtAo9B302zPPlrtiVScRdCjXvVh3e3JpYa/jjkuC9N+LrBMlz/eAN4eQijX2EdLo6c5tGGHwLyHFtXk89dDGHwCVhG9T0S/j55AhRZgkMCmUQXJ49TnS1wnQDvw0eAh9ICeMmEFbCnPMFzjAvsWoEWEFdYEx+S0MoUZ1gT1wId8+AF3Bl2OoEu906AUHx5VLw/gXYg/x84loOah/2UYNrgiwSwGO7RfUzVBbx/kgpckumGOi6QirtD6gkLTitbnxNol47S2jVc2vsN5kPqaAHT8uUdAJM4v/DanjYOwmUjWznGfwB7sGtAtor5BgofDuzaRj4kSQAqDakTsKORa3Q3xKi3gE1fhl71KRMqrdZ2AWNNg/YOhQyrVBnb+i+nEg4bsDA+egAAAABJRU5ErkJggg==
Subject Re: Will this set or get a SESSION variable?
Newsgroups comp.lang.php
References <8dd22b72-62c3-4b3c-b3ec-10ff4d682614@e16g2000yqj.googlegroups.com> <kidekm$eiu$1@speranza.aioe.org> <876cb42b-6731-44db-a25b-9ce81b49d071@y4g2000yqa.googlegroups.com>
MIME-Version 1.0
Lines 107
NNTP-Posting-Date 22 Mar 2013 15:41:36 CET
NNTP-Posting-Host 02522735.newsspool3.arcor-online.net
X-Trace DXC=\o\b;^JVGg9gP]QSEBQ^d4McF=Q^Z^V384Fo<]lROoR18kF<OcfhCO;N7R:9EjSaT?DZm8W4\YJN<b@mF9jNikd57a5\<`>]gf>_CG<]ceJc>?
X-Complaints-To usenet-abuse@arcor.de
Xref csiph.com comp.lang.php:8804

Show key headers only | View raw


David Heller wrote:

> On Mar 20, 6:53 pm, Christoph Becker <cmbecke...@gmx.de> wrote:
>> David Heller wrote:
>> > I have the following code snippet:
>>
>> > if(in_array($name, $this->m_names))
>> > {
>> > $this->m_rules[$name][] = $rule;
>> > return $_SESSION[$name];
>>
>> > }
>> > In the entire script there does not appear to be any assignment to the
>> > $_SESSION super global

But most certainly in at least one other PHP script on the website.

>> > so would it be fair to say that "return $_SESSION[$name];" not only
>> > creates a session variable but returns it also?

No, it would be utter nonsense to say that.

>> > And what is it set to??

That depends on what has been stored in it previously.

>> > It appears to me that $_SESSION[$name] = " " or
>> > possibly something else.
>>
>> You may check it out for yourself:
>>
>> if(in_array($name, $this->m_names))
>> {
>> $this->m_rules[$name][] = $rule;
>> var_dump($_SESSION[$name]);
>> return $_SESSION[$name];
>>
>> }
>>
>> If the session is not initialized or the session variable has not been
>> set before, it will print NULL.

As with any other PHP array when you use a non-existing key.  There is 
nothing special about $_SESSION here, other than it could have been 
initialized, and the key-value pair could have been added, from session data 
set previously, elsewhere.

>> You'll find comprehensive information about PHP sessions on
>> <http://www.php.net/manual/en/book.session.php>.
> 
> I'm starting to think that it does not matter if its set to anything
> because I think what the author is trying to do is just get what
> $name contains for instance if the $name is equal to Robert and he has
> something like "$anothername = Robert" and then does this:
> $_SESSION[$anothername]
> then the contents would be equal: $_SESSION[$name] ===
> $_SESSION[$anothername]

That is trivially true and does not appear to be relevant here.

> So what he is really doing is returning the
> "key" to an associative array

Most certainly not.

> since $name is a member of $m_names

Arrays do not have members, they have elements with a key and a 
corresponding value.  Classes, maybe even object, have members.  Arrays are 
not classes or objects, in PHP.

> and its also a key for $m_rules. Very clever and interesting technique of
> passing by value.

I do not follow.  What does this have to do with pass-by-value?

What this code does is:

1. Search the array $this->m_names for the element whose *value* is the
   value of the variable $name.  (Trivially, a name.)

2. If that value is found,

   a. an element is being added to the array $this>m_rules[$name] with the
      value of $rule.

   b. var_dump(…);  (optional)

   c. The value of the element in the $_SESSION array that has the key that
      is the value of $name is returned.  One can assume that the $_SESSION
      array at that point may contain people-specific data that has been
      stored previously, and restored with start_session().  It could be an
      approach at caching in a database-powered application across several
      document resources.  BTDT.

Thus, if the value of $name is not found in $this->m_names, none of above 
will happen.  Something else might happen instead in the code that follows.
   
Please do not quote signatures unless you explicitly refer to them.


PointedEars
-- 
    realism:    HTML 4.01 Strict
    evangelism: XHTML 1.0 Strict
    madness:    XHTML 1.1 as application/xhtml+xml
                                                    -- Bjoern Hoehrmann

Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Will this set or get a SESSION variable? David Heller <daveh@allheller.net> - 2013-03-20 15:09 -0700
  Re: Will this set or get a SESSION variable? Christoph Becker <cmbecker69@gmx.de> - 2013-03-20 23:53 +0100
    Re: Will this set or get a SESSION variable? David Heller <daveh@allheller.net> - 2013-03-20 17:14 -0700
      Re: Will this set or get a SESSION variable? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-22 15:41 +0100
        Re: Will this set or get a SESSION variable? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-03-22 17:34 +0100
  Re: Will this set or get a SESSION variable? Robert Heller <heller@deepsoft.com> - 2013-03-20 18:39 -0500
    Re: Will this set or get a SESSION variable? Jerry Stuckle <jstucklex@attglobal.net> - 2013-03-20 23:35 -0400
  Re: Will this set or get a SESSION variable? Jerry Stuckle <jstucklex@attglobal.net> - 2013-03-20 23:32 -0400

csiph-web