Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Зона видимости

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
czp
Отправлено: 16 Февраля, 2013 - 17:23:10
Post Id


Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




есть функция
PHP:
скопировать код в буфер обмена
  1. function myfunc () {
  2.   global $var
  3.  
  4.   include('file.php');
  5.  
  6.   return true;
  7. }

в file.php если написать


или еше раз напистаь


не будет работать, вернет в любом случаии труе а глобал не сработает, тоже самое и в методах в классах,
вопрос - как сделать что бы в отдельно файле который подлючается в функцию можно было остановить выполнение функции?
 
 Top
NoPaper
Отправлено: 16 Февраля, 2013 - 19:44:31
Post Id



Посетитель


Покинул форум
Сообщений всего: 315
Дата рег-ции: Янв. 2012  
Откуда: Минск


Помог: 9 раз(а)




Замени include на require
 
 Top
esterio
Отправлено: 16 Февраля, 2013 - 19:48:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




NoPaper
NoPaper пишет:
Замени include на require

И что ето даст???
Так на заметку с офф док.
Цитата:
require идентично include() за исключением того, что при ошибке оно также выдаст фатальную ошибку уровня E_COMPILE_ERROR. Другими словами, она остановит выполнение скрипта, тогда как include() только выдала бы предупреждение E_WARNING, которое позволило бы скрипту продолжить выполнение.


czp
PHP:
скопировать код в буфер обмена
  1.     function myfunc () {
  2.       global $var
  3.      
  4.      if(!include('file.php'))
  5.          return false;
  6.      
  7.       return true;
  8.     }
 
 Top
LIME
Отправлено: 16 Февраля, 2013 - 19:50:09
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




return в инклудном файле прекращает его выполнение и происходит возврат в вызывающий
 
 Top
NoPaper
Отправлено: 16 Февраля, 2013 - 19:53:49
Post Id



Посетитель


Покинул форум
Сообщений всего: 315
Дата рег-ции: Янв. 2012  
Откуда: Минск


Помог: 9 раз(а)




Цитата:
И что ето даст???

По мануалу http://www.php.su/functions/?require сия функция должна включить код файла до выполнения скрипта, а не в процессе его выполнения
 
 Top
LIME
Отправлено: 16 Февраля, 2013 - 19:55:28
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




NoPaper и что же это даст?))
 
 Top
esterio
Отправлено: 16 Февраля, 2013 - 20:01:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




NoPaper
не хочу обижать данный сайт, но инфа здесь немного устаарела. Хотя отдаю отчет за проделаую админами работу. Но све же лучше офф доки нету. То что Вы описали било раньше. теперь не важно где идет подключения. Разницу я Вам описал
 
 Top
NoPaper
Отправлено: 16 Февраля, 2013 - 20:03:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 315
Дата рег-ции: Янв. 2012  
Откуда: Минск


Помог: 9 раз(а)




LIME пишет:
NoPaper и что же это даст?))

Если бы структура require заменялась на содержимое включаемого файла, то мы бы получили нужный результат
 
 Top
DeepVarvar Супермодератор
Отправлено: 16 Февраля, 2013 - 20:03:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




require
 
 Top
LIME
Отправлено: 16 Февраля, 2013 - 20:06:00
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




esterio то есть теперь они не на разных этапах подрубаются?
ой ли?
 
 Top
esterio
Отправлено: 16 Февраля, 2013 - 20:06:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




LIME
Где-то я уже спорил на даную тему. Счас поищу
(Добавление)
Нашел
http://forum.php.su/topic.php?fo...45054#1357845054
 
 Top
czp
Отправлено: 16 Февраля, 2013 - 20:55:31
Post Id


Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




с require результат тоже не тот

PHP:
скопировать код в буфер обмена
  1. function my () {
  2.   include('file.php');
  3.  
  4.   return true;
  5. }


file.php
PHP:
скопировать код в буфер обмена
  1. $var = 10;
  2.  
  3. if ($var == 10) return false;


при любом раскладе мне вертает тру, он просто завершает работу в файле, но не как в функции, а надо что бы из файла завершить работу функции и вернуть результата который будет вовращать ретур, как то так
 
 Top
LIME
Отправлено: 16 Февраля, 2013 - 20:57:31
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




PHP:
скопировать код в буфер обмена
  1. function my () {
  2.   $return=true;
  3.   include('file.php');
  4.  
  5.   return $return;
  6. }
 
 Top
czp
Отправлено: 16 Февраля, 2013 - 20:58:33
Post Id


Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




как то так вот пашет, но я не знаю правильно ли это, что скажете более опытные?
PHP:
скопировать код в буфер обмена
  1. function my() {
  2.   $result = require('file.php');
  3.                
  4.   return $result;
  5. }


file.php

PHP:
скопировать код в буфер обмена
  1. $var = 10;
  2. if ($var == 10) return false;

(Отредактировано автором: 16 Февраля, 2013 - 21:00:56)

 
 Top
esterio
Отправлено: 16 Февраля, 2013 - 21:04:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




czp
Правильно
Почитайте наконец доку.
Цитата:
Обработка возвращаемых значений: возможно выполнить выражение return() внутри включаемого файла, чтобы завершить процесс выполнения в этом файле и вернуться к выполнению включающего файла. Также, возможно вернуть значение из включаемых файлов. Вы можете получить значение включения как если бы вы вызвали обычную функцию. Хотя это не возможно при включении удаленного файла, только если вывод удаленного файла не содержит правильные теги начала и конца PHP кода (так же, как и локальный файл). Вы можете определить необходимые переменные внутри этих тегов и они будут представлены в том месте, где файл был включен.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB