Diferença entre funções e funções públicas em classes
nas aulas, a maioria das pessoas usa {[[0]} para definir métodos. No entanto, vi vários exemplos deles sendo definidos sem a palavra-chave public
, como function name() { }
. Fiquei confuso com isso porque pensei que você tinha que usar público/privado/protegido quando dentro de uma classe.
fiz o mesmo tipo de coisa e function
estava a fazer exactamente o mesmo trabalho que public function
.
function
e public function
Quando dentro de uma classe?
6 answers
Omitir a visibilidade élegacy code . O PHP 4 não suportou public
, protected
e private
todos os métodos foram public
.
Curto: "public function" == "function" // true
// This is public function Foo() { $this->MyPublic(); $this->MyProtected(); $this->MyPrivate(); }
Similarmente {[6] } é equivalente a public $attribute
. A versão var
também é PHP 4 legacy code.
Não há diferença no PHP > = 5. Os métodos de classe podem ser definidos como públicos, privados ou protegidos. Métodos declarados sem qualquer palavra-chave de visibilidade explícita são definidos como públicos.
A visibilidade por omissão é pública. Se um método for declarado sem prefixo de visibilidade explícita, será público.
As seguintes declarações são equivalentes:
function name() {};
public function name() {};
Do manual do PHP:
Os métodos de classe podem ser definidos como públicos, privados ou protegidos. Meios declarado sem qualquer palavra-chave de visibilidade explícita são definidos como publico.
<?php
/**
* Define MyClass
*/
class MyClass
{
// Declare a public constructor
public function __construct() { }
// Declare a public method
public function MyPublic() { }
// Declare a protected method
protected function MyProtected() { }
// Declare a private method
private function MyPrivate() { }
// This is public
function Foo()
{
$this->MyPublic();
$this->MyProtected();
$this->MyPrivate();
}
}
Se você definir com simplesmente function
significa, por omissão, ele toma public
âmbito (por omissão)de PHP 5 .
function sample { }
E
public function sample { }
Não há diferença entre eles.
private
=> pode aceder à propriedade com a classe
protected
=> pode aceder à própria classe e subclasses
public
=> pode acessar em qualquer lugar na aplicação.
Na função OOP PHP são chamados métodos.
class MyClass {
public function aMethod() {
// (do stuff here)
}
function myMethod(){} //here public property is assumed
}
Quando você opcionalmente deixa de fora a palavra-chave pública, privada ou protegida em uma classe. Se fizeres isto, o publicis presumiu.
- público - > disponível em todo o âmbito, o que significa que pode ser acedido em todo o lado
- protegido - > disponível dentro da classe ou das suas subclasses.
-
Privado - > disponível apenas dentro da classe que define a função
Estas funcionalidades estão disponíveis desde o php 5.X e eles dar-lhe a possibilidade de controlar a visibilidade da sua variável ou função.
Se você vê uma função com identificadores, como público , Protegido e privado estes estão na classe.
public function functionName(){}
and
function functionName(){}
São basicamente os mesmos excepto que se tem um nível de visibilidade de ser público e é orientado a objeto e a outra função normal php sem nível de visibilidade.