Can't use sha1 inside class definition?

You can't use function-calls to initialize class member variables.

You can't use function-calls to initialize class member variables. Class YourClass { private $salty; public function __construct() { $this->salty = sha1('salty'); } } is the one way to initialize your variable. EDIT Even, e.g. , a simple concatenation of two constant strings is not allowed (protected $_string = ' 'World!

';). The evaluation of class properties happens at compile time, so the usage of constructs that depend on run-time information is illegal.... This declaration may include an initialization, but this initialization must be a constant value--that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated. (Properties).

Bingo! Right on the mark! Thanks for that.

Any idea why this is? – Mr_Chimp Nov 18 '09 at 12:19 It's because your class is just a data structure. You always need to call a function to set them to some values.In your case it's the constructor function.

– toto Nov 18 '09 at 12:27 1 Added some explanation. Actually it's a problem of when in the execution process the member variables are evaluated. – Stefan Gehrig Nov 18 '09 at 12:31 That makes a lot of sense.

Thanks. – Mr_Chimp Nov 18 '09 at 12:41.

Just declare the variable as null and then initialize it in your constructor. Private $salty = null function __construct() { $this->salty = sha1('salty'); }.

I didn't try to "handle a function as a variable". You added the $ in "$sha1()" yourself. You do have a point when you say that I should be using hash() instead of sha1().

BTW, try to reply to the comment that you're replying to, otherwise we get a thread full of "answers" which aren't. – Mr_Chimp Nov 18 '09 at 12:58 Ah, I'm sorry for creating a new answer. I'm new here.. I was reffering to the answer of Pablasso, not your post.

– Ben Fransen Nov 18 '09 at 13:00 Oh! Well, that makes sense...I hadn't even spotted that in Pablasso's answer! No worries, pull up a chair, make your self comfortable, etc!– Mr_Chimp Nov 18 '09 at 13:11.

$sha1() won't function because you're trying to handle a function as a variable. And when you're working on a better login mechanism why not start using: $this->salty = hash("SHA512", "salty"); Additionally you can create a salt hash and add it with your password. This addition gives you a little overhead because you will have to save the salt in a db-table too and retreive and combine it when you are validation (user)credentials.

Hope it helps you!

It doesn't, but thanks for trying! – Mr_Chimp Nov 18 '09 at 12:32.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions


Thank You!
send