Вопрос:
В классах большинство людей используют public function name() { } для определения методов. Тем не менее, я видел несколько примеров их определения без ключевого слова public, например function name() { }. Я был смущен этим, потому что я думал, что вам нужно использовать public/private/protected, когда внутри класса.
Я делал то же самое, и function выполняла ту же работу, что и public function.
Итак, мой вопрос: в чем разница между использованием function и public function внутри класса?
Лучший ответ:
Опущение видимости – это устаревший код. PHP 4 не поддерживал public, protected и private, все методы были public.
Short: «public function» == «function»//true
См. Также руководство по PHP:
// This is public function Foo() { $this->MyPublic(); $this->MyProtected(); $this->MyPrivate(); }
Аналогично var $attribute; эквивалентно public $attribute. Версия var также является устаревшим кодом PHP 4.
Ответ №1
Там нет разницы в PHP> = 5. Методы класса могут быть определены как общедоступные, частные или защищенные. Методы, объявленные без какого-либо явного ключевого слова видимости, определяются как общедоступные.
Ответ №2
По умолчанию видимость является общедоступной. Если метод объявлен без явного префикса видимости, он будет общедоступным.
Следующие объявления эквивалентны:
function name() {}; public function name() {}; Ответ №3
Если вы не устанавливаете видимость метода в php, это то же самое, что и его публикация.
Из руководства PHP:
Методы класса могут быть определены как общедоступные, частные или защищенные. Методы, объявленные без какого-либо явного ключевого слова видимости, определяются как общедоступные.
<?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(); } } Ответ №4
Если вы определяете с помощью простых function, по умолчанию для него требуется public область (по умолчанию) из PHP 5.
function sample { }
а также
public function sample { }
нет никакой разницы между ними.
private => может получить доступ к свойству в классе
protected => может получить доступ к собственному классу и подклассам
public => может обращаться в любом месте приложения.
Ответ №5
В функции OOP PHP называются методы.
class MyClass { public function aMethod() { // (do stuff here) } function myMethod(){} //here public property is assumed }
Когда вы произвольно оставляете общедоступное, закрытое или защищенное ключевое слово в классе. Если вы это сделаете, publicis предположил.
- public → Доступно во всей области, то есть к нему можно получить доступ везде
- protected → Доступно в классе или его подклассах.
-
private → Доступно только в классе, который определяет функцию
Эта функция доступна с php 5.X, и они дают вам возможность контролировать видимость вашей переменной или функции.
если вы видите функцию с идентификаторами, например public, protected и private, они находятся в классе.
public function functionName(){} and function functionName(){}
в основном одинаковы, за исключением того, что уровень видимости является открытым и объектно-ориентированным, а другая нормальная функция php без уровня видимости.