最近、私は自分のフレームワークをphp名前空間を使用するように変換し始めましたが、答えが見つからないように思われる質問の1つは、「オブジェクト」、「配列」、「文字列」などの予約語を使用することは「合法」ですか。 '名前空間およびその名前空間内のクラス名として?例は次のとおりです。
namespace System\Object;
class String { }
class Array { }
最近、私は自分のフレームワークをphp名前空間を使用するように変換し始めましたが、答えが見つからないように思われる質問の1つは、「オブジェクト」、「配列」、「文字列」などの予約語を使用することは「合法」ですか。 '名前空間およびその名前空間内のクラス名として?例は次のとおりです。
namespace System\Object;
class String { }
class Array { }
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文字で変更できます。
お役に立てば幸いです。