2016-10-18 10 views
1
interface StorageInterface 
{ 
    public function isset($index); 
    public function set($index, $value); 
    public function unset($index); 
} 

こんにちは、私は自分のクラスメソッドにPHPオリジナルメソッドを上書きに関する質問があります。 orignal phpメソッドに影響を与えますか? それは良い練習か悪いと思う?クラス内のPHPメソッドを上書きすると、元のPHPメソッドに影響はありますか?

また、類似のメソッド名を指定する方が良いでしょう。 はので、ここで

public function isset($index) 
{ 
    return isset($_SESSION[$this->product][$index]); 
} 

public function unset($index) 
{ 
    unset($_SESSION[$this->product][$index]); 
} 

ので、私は私のProductクラスを作成することStorageSessionクラスのメソッドの実際の実装(ISSET)及び(未設定)です。 私は質問は、私は check(), has(), remove(), delete()、のようないくつかの他の類似した名前で、 isset() and unset()メソッドに名前を付けるべきである。この

public function __construct(SessionStorage $storage); 

public function hasProduct($product) 
{ 
    $this->storage->isset($product->id); 
} 

public function removeProduct($product) 
{ 
    $this->storage->unset($product->id); 
} 

のようなものを実装することができます。それとも、名前を付けるのも大丈夫です。isset() and unset()

+0

あなたはissetを '返す '必要があります。 – SOFe

答えて

0

issetとunsetはキーワードです。 PHP 7以降はメソッド名として使用できますが、PHP 5では使用できません。

通常の名前を使用すると何が問題になりますか?

+0

私はメソッドの一貫性を保ちたいのですが、同様の機能を持つ名前のついたメソッドが多すぎると、私はいつも私を混乱させます。 – jacky

+0

はい、私はcheck()、remove()のようなdiff名を与えることについて考えます。しかし、私はいつも、私はそのメソッドが何をするかを参照するために、定義に戻る必要があることに終わります。だからこそ私はメソッド名をキーワード名にするほうが好きです。 – jacky

関連する問題