как пустые функции могут помочь нам в PHP - PullRequest
0 голосов
/ 11 января 2011

привет
Я изучаю php, и я видел много пустых функций во многих других небольших проектах, и я не знаю, как это может помочь.

Пример:

public function first(){
// do nothing
          }
public function second(){
        // do nothing
          }
public function myfuntion(){
        // Codes
          }

другой пример: <br/> class user_bo{</p> <pre><code>protected $attributes = Array(); public function __get($key){ return array_key_exists($key, $this->attributes) ? $this->attributes[$key] : null; } public function __set($key, $value){ $this->attributes[$key] = $value; } /** Constructor **/ public function __construct(){ }

}?>

Как __construct () может помочь нам в этой ситуации, если похоже, что он ничего не делает?

Ответы [ 4 ]

2 голосов
/ 11 января 2011

Когда вы говорите «Пустые функции», вы больше, чем просто говорите о __construct и магических методах

То, как они помогают нам определить авторизацию действия, например

public class MyClass
{
    private function __construct(){}
}

Это позволяет нам блокировать вызов new MyClass, но его можно переопределить, вызвав статический метод и выполнив new self()

Также существуют другие причины, например запрещенное наследование, например:

#Class 1
public function Base
{
    public function start()
    {
        echo "hello";
    }
}

#Class 2
public function Layer extends Base
{
}

#Class 3
public function Layer extends Base
{
    private function start(){}
}

Если посмотреть на вышеприведенный класс 2, он содержит вызываемый метод, называемый start, но это метод родительского класса, в классе 3 происходит то же самое, но он переопределяется локальным методом как таковым, и в качестве его частного он запрещает вызовmethod.

немного углубляясь в ООП, у нас есть интерфейсы, которые сообщают классу, что он должен содержать назначенный набор методов, поэтому, если класс реализует такой интерфейс, потребуется определить все необходимые методы, иначевыдаст ошибку, поэтому программисты могут создавать пустые методы для сохранения структуры класса.


В светеваш новый пример: нет конкретной причины для пустой публичной __constructor кроме случаев, когда она расширяет другой класс.

Вот пример:

class Main
{
    public function __construct()
    {
        echo "Main";
    }
}

class FirstSub extends Main
{
}

class SecondSub extends Main
{
    public function __construct()
    {
        echo "SecondSub";
    }
}

class ThirdSub extends Main
{
    public function __construct()
    {
        echo "ThirdSub <br />";
        parent::__construct();
    }
}

Как видно из структурыу нас есть один первичный класс с именем Main и три подкласса.

Если мы инициализируем, основной класс собирался получить конструктор print Main, но результаты будут варьироваться в зависимости от подклассов, поскольку переопределение конструкторародительский.

, поэтому инициализация следующего приведет к:

  • Main: Main
  • FirstSub: `` - Nothing
  • SecondSub: SecondSub
  • ThirdSub: ThirdSub<br />Main

, так как использование пустой конструкции влияет на родительские классы.

0 голосов
/ 11 января 2011

Я не уверен, получил ли я то, что вы пытались объяснить, но иногда это помогает многим людям кодировать общие контуры программы, и только после того, как они закончили, завершили и закодировали каждую функцию, чтобы она победилане обрезать их мышление.

Чтобы помнить, что им нужно кодировать эту функцию, они создают ее, но оставляют ее пустой.Конечно, имена функций, вероятно, будут более наглядными, чем «first», «second» или «myfunction».

0 голосов
/ 11 января 2011

Ан, я думаю, вы читаете о "функциях в PHP".А здесь автор объясняет, как определить свои и пользовательские функции.

<?php
function foobar() {
    echo "Foobar";
}
?>
0 голосов
/ 11 января 2011

Пустые функции, вероятно, еще не реализованы и, вероятно, используются в качестве заполнителей для будущих улучшений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...