2011-01-13 21 views
9

Perché dovrei dichiarare proprietà di classe (variabili) o metodi (funzioni) utilizzando la parola chiave public, se sono pubblici per impostazione predefinita? O sono?classi PHP perché utilizzare la parola chiave pubblica?

Per esprimere la mia domanda in modo diverso, è public ridondante? Capisco private e protected, ma perché dichiarare public se i membri della classe sono comunque pubblici?

risposta

7

Sì, public è l'impostazione predefinita (vedere visibility docs).

Le persone lo aggiungono, quindi è coerente con tutti gli altri metodi/proprietà.

Inoltre, se si desidera dichiarare una proprietà pubblica e non si desidera utilizzare public, sarà necessario utilizzare var, che non è consigliato e sarà probabilmente deprecato a un certo punto.

+0

Per proprietà, ok. Ma chi ha davvero bisogno delle proprietà pubbliche oggigiorno? Per i metodi pubblici, è una questione di convenzione (ad esempio, PSR-2), che è utile per familiarità e interoperabilità. Ma non c'è alcun vantaggio tecnico. E, direi, non migliora la leggibilità, se il tuo cervello non è già abituato a vedere la parola chiave pubblica. – donquixote

2

Sicuro che è ridondante poiché questo è il livello di visibilità predefinito. Dovresti evitarli quando puoi. Alcune persone aggiungono esplicitamente la parola chiave public in modo che il codice sia poco più leggibile.

+1

evitare quello che (chi) quando posso? – Ben

+1

@Steve: Voglio dire, puoi ignorare la digitazione della parola chiave 'public' per le vars di livello pubblico :) – Sarfraz

+1

@Stve La parola chiave' public'. – Savetheinternet

3

A partire da php 5.3 (credo sia passato un po 'di tempo), l'uso della parola chiave var genera errori E_STRICT, quindi è necessario utilizzare public per dichiarare gli oggetti disponibili. Per quanto riguarda le funzioni, credo che sia più una cosa di consistenza.

+0

No, ha generato E_STRICT tra 5.0 e 5.13 (in base al documento). Ma hanno lasciato cadere l'avviso. – NikiC

+0

Oh davvero? Grazie per il testa a testa. Non ho mai realizzato che fosse cambiato – Travis

Problemi correlati