Вложенные функции php

Функции можно вызывать внутри других функций — по аналогии с тем, как одна управляющая конструкция (if, while, for и т.д.) может находиться внутри другой.

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

Вложенные функции выглядят следующим образом:

  function Parent($a) 
   { 
      echo $a; 
      function Child($b) 
   { 
      echo $b+1; 
      return $b*$b; 
   } 
      return $a*$a*Child($a); // фактически возвращает $a*$a*($a+1)*($a+1) 
   } 
// Вызываем функции 
Parent(10); 
Child(30); 
  

Видно, что нет никаких ограничений на место описания функции — будь то глобальная область видимости программы, либо же тело какой-то другой функции.

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

Если же в процессе выполнения программы PHP никогда не доходит до определения некоторой функции, она не будет “видна”, как будто ее и не существует.

Вложенное объявление еще не делает функцию «защищенной», то есть не ограничивает возможность ее вызова той функцией, в которой она была объявлена.

Вложенная функция не наследует параметров родительской функции. Параметры должны передаваться ей точно так же, как и любой другой функции.

Хотя вложенные функции не защищены от вызова из других точек сценария, они не могут вызываться до вызова своей родительской функции.

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

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Фреймворк Yii

Фреймворк Yii

Yii — это высокоэффективный основанный на компонентной структуре PHP-фреймворк для разработки масштабных веб-приложений. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить

 
Библиотека RedBeanPHP.

Библиотека RedBeanPHP.

RedBeanPHP – это мощная ORM для PHP, которая значительно упрощает работу с базами данных. ORM или Object-relational mapping (Объектно-реляционное отображение) — это технология программирования, которая

 
Безопасное хеширование паролей в PHP.

Безопасное хеширование паролей в PHP.

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

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: