2017-02-23 9 views
0

私は、function myClass(){return new myClass();}のような機能を作ることについて尋ねる同様の質問を見ました。私の質問はちょっと違う - PHP関数の名前として偶然使用される単語を使ってクラスと名前を作りたい。PHPで無関係なクラスの名前として関数の名前を使用することはできますか?

たとえば、競争のラウンドはクラスRoundのオブジェクトである必要があります。しかし、PHP関数Round()(通常はround()とタイプされています)に問題が発生する危険性がありますか?これは問題ありませんか?

私はLaravelがLogクラスを持っていることを知っていますが、私は "Laravel does it"が確実であるとは確信していません。名前を防ぐために

+1

クラスのメソッドのdittoに同じ名前を与えている場合、そのメソッドはそのクラスのコンストラクタと見なされます。自動的に呼び出されると、そのクラスのオブジェクトが開始されます。 – rahulsm

+0

@rahul_m質問はメソッドの名前付けに関するものではありません。そのような関数が既にPHP自体で定義されている場合、クラス "Round"の名前を付けるのはちょうどいいですか? " –

+0

別の方法で 'namespace 'を使用してください! 'namespace myareaのようなものを定義する。 function round(){} 'あなたは大丈夫ですが、名前に問題はありません。あなたは予約語を使用することはできませんhttp://php.net/manual/en/reserved.keywords.php – JustOnUnderMillions

答えて

1

でもそれはthis exampleで動作しますが、いくつかのケースでは、それはnamespacesはもちろんのより良く、より安全で使用して、名前の衝突につながると競合します。

1

使用namespaces

namespace xyz { 
    class round { 
    function __construct(){ 
     print __METHOD__.'<br>'; 
    } 
    } 
    function strpos(){ 
     print __FUNCTION__.'<br>'; 
    } 
} 

namespace { 

use \xyz\round; 

new round(); 

print round(1.234,2).'<br>';//original php 

\xyz\strpos(); 

print strpos('abc','b').'<br>';//original php 

} 
関連する問題