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.

Então a minha pergunta é, Qual é a diferença entre usar function e public function Quando dentro de uma classe?

Author: Pierre-Luc Pineault, 2014-02-20

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

Ver também o manual de PHP :

// 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.

 8
Author: TimWolla, 2014-02-20 17:05:43

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.

 2
Author: ziollek, 2014-02-20 17:01:03

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() {};
 2
Author: George Cummins, 2014-02-20 17:02:08
Quando não se define a visibilidade de um método em php, é o mesmo que defini-lo como público.

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();
    }
}
 2
Author: Guilherme Vaz, 2014-02-20 17:02:34

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.

 2
Author: Vasu, 2014-02-20 17:19:22

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.

 -1
Author: Mubo, 2014-02-20 18:25:03