6

最近、私は自分のフレームワークをphp名前空間を使用するように変換し始めましたが、答えが見つからないように思われる質問の1つは、「オブジェクト」、「配列」、「文字列」などの予約語を使用することは「合法」ですか。 '名前空間およびその名前空間内のクラス名として?例は次のとおりです。

namespace System\Object;


class String { }

class Array { }
4

1 に答える 1

10

PHPは次のよ​​うなエラーをスローします:

Parse error: syntax error, unexpected T_ARRAY, expecting T_STRING

試してみると:

class Array
{

}
$myClass = new Array;

代わりに、次のようなものを試してください

class myArray
{

}
$myClass = new myArray;

[編集]これについて少し詳しく説明します。上記の最初のシナリオでは、配列を定義するか、同じ名前のクラスを初期化するかをPHPが区別できないため、これらは理由のために予約されています。したがって、エラーがスローされます。たとえば、MySQLのように、予約語をバックティックでエスケープできる場合、これを回避する方法はありません。したがって、PHPでは、名前を変更する必要があります。名前をあまり変更する必要はありません。予約語とまったく同じ名前を使用していない限り、1文字で変更できます。

お役に立てば幸いです。

于 2012-08-03T08:34:11.713 に答える