On Fri, Apr 13, 2012 at 21:29, Dmitri Snytkine
<dsnytk...@ultralogistics.com> wrote:
> But why is it possible to assing  a new array to a property like that but not 
> a new instance of some class?
> Isn't a new array also requires some type of initialization?

Only static values are allowed, which means that the value requires no
code to execute.

>
> Dmitri Snytkine
> Web Developer
> Ultra Logistics, Inc.
> Phone: (888) 220-4640 x 2097
> Fax: (888) 795-6642
> E-Mail: dsnytk...@ultralogistics.com
> Web: www.ultralogistics.com
>
> "A Top 100 Logistics I.T. Provider in 2011"
>
>
> -----Original Message-----
> From: ekne...@gmail.com [mailto:ekne...@gmail.com] On Behalf Of Etienne Kneuss
> Sent: Friday, April 13, 2012 3:27 PM
> To: Dmitri Snytkine
> Cc: PHP Internals
> Subject: Re: [PHP-DEV] Ability to assign new object to a class property.
>
> Hi,
>
> On Fri, Apr 13, 2012 at 21:19, Dmitri Snytkine
> <dsnytk...@ultralogistics.com> wrote:
>> I always wondered why can't we do something like this in php
>>
>> class MyClass{
>>
>> private $storage = new ArrayObject();
>>
>> public function __construct($v){
>> // whatever
>> }
>>
>> // rest of class
>>
>> }
>>
>> Why can't we create a new object and assign it to property like this?
>>
>> Then when a new instance of MyClass is created the $storage variable is
>> automatically assigned a new ArrayObject.
>> Somethink like this is valid, possible and commonly used in Java, why not in
>> php?
>>
>> Has anyone already asked for this to be valid syntax in php?
>
> Sure, people have asked for that. It is definitely possible in theory,
> but requires quite some work:
>
> It requires to add an initialization phase to the class. In other
> languages, it is typically done by automatically adding the
> initialization code in the constructors. We cannot do that in PHP
> because calling parent constructors is not mandatory.
>
> In other words, in order to allow for this, we need to add an
> initialization phase before calling the constructors.
>
> Allowing this syntax for classes properties would also require adding
> an initialization phase, and it is not entirely clear when to run it
> (i.e. when the class is first used or when it is loaded).
>
> Best,
>
>>
>> Dmitri Snytkine
>> Web Developer
>> Ultra Logistics, Inc.
>> Phone: (888) 220-4640 x 2097
>> Fax: (888) 795-6642
>> E-Mail: dsnytk...@ultralogistics.com
>> Web: www.ultralogistics.com
>>
>> "A Top 100 Logistics I.T. Provider in 2011"
>>
>>
>>
>>
>> --
>> PHP Internals - PHP Runtime Development Mailing List
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>
>
>
> --
> Etienne Kneuss
> http://www.colder.ch
>



-- 
Etienne Kneuss
http://www.colder.ch

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to