2010-12-07 13 views
3

は私が単離されてきた、最小限のテストケースです。PHPクラスのプロパティの使用範囲は、()ここで

PHP 5.3.3(OS Xに同梱)を使用しています。

+3

...正しいことはできません「他の機能の多くは働く」というコメントに役立ちます願っています。 – Matthew

+0

@konforceストーリーの道徳は、夜遅くにスーパーオーバーフローの質問をしないでください。 D: – Karew

答えて

5

このコンテキストでは、定数値のみを割り当てることができます。関数の戻り値を使用する場合は、コンストラクタで$fooを初期化する必要があります。

<?php 

class What { 
    public $foo; 

    public function __construct() { 
     $this->foo = range(0,5); 
    } 
} 

?> 

はところで:他の人が指摘したように、array()は関数ではありません。それは言語構造です。

1

配列は関数ではなく、言語構造です。それが許可されている理由です。

0

Class member variables are called "properties" ... 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.

http://www.php.net/manual/en/language.oop5.properties.php

0

チェックこのリンクも同様の問題が送信されたと解明されていたとして: -

http://www.phpbuilder.com/board/showthread.php?t=10366062

また、あなたは、PHPでの範囲()関数の使用例を見ることができます.Net Manual私は変数の$ fooとpublicキーワードに問題があると思いますが、PHP関数のバージョンと実行中のPHPバージョンの型の不一致や競合が考えられます。

私はこの答えはあなたが

+0

これは同じ問題ではありません。その投稿では、ユーザーは 'public'と' private'アクセス修飾子をサポートしていないPHPバージョン4.4.6を使用していました。この質問では、OPはPHPのバージョン5.5.3を使用しています。これは 'public'と' private'アクセス修飾子をサポートしています。 – Asaph

関連する問題