Вызов одной функции два раза с разными данными

verhmax
На сайте с 01.12.2005
Offline
191
968


<?php

$url="www.site1.ru";//значение 1
include ("file.php");//вызов функции

$url="www.site2.ru";//значение 2
include ("file.php");//вызов функции

// выдаёт ошибку! первый раз функция сработала нормально, далее ошибка

?>

вот такой скрипт, вызывает функцию хранящуюся в файле file.php и передаёт значение $url="www.site1.ru";

как зделать чтоб вызвать снова туже функцию, с темже параметром $url только с другим значением???

Заранее спасибо за помощь!!!

Shema
На сайте с 01.12.2005
Offline
176
#1

ыыы, жесть

кто ж так делает?

У вас внутри file.php просто код или всё-таки настоящая функция? типа

function myfunc(...) {...}
?

Надо


<?php

include_once ("file.php");// внутри описание функции myfunc без вызова

$url="www.site1.ru";//значение 1
myfunc ($url);

$url="www.site2.ru";//значение 2
myfunc ($url);

?>
Студия Design Coda (http://www.designcoda.ru/). Личные контакты: +7(903)1367564, skype:andrey.oshemkov, telegram:@oshemkov. WMID: 492025973671 (https://passport.webmoney.ru/asp/certview4.asp?wmid=492025973671), делаем и рекламируем сайты, мобильные приложения, ботов для Telegram.
dkameleon
На сайте с 09.12.2005
Offline
386
#2

само тело функции необходимо взять в код:


if (!function_exists("my_func")) {
function my_func() {}
}

чтобы исключить повторную декларацию.

Дизайн интерьера (http://balabukha.com/)
Oniks
На сайте с 22.08.2005
Offline
176
#3

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

Профессиональные услуги фотографа в Москве и области (http://www.oniks-photo.ru/) покупаю стать и ссылки с сайтов про охоту
verhmax
На сайте с 01.12.2005
Offline
191
#4
Shema:
<?php

include_once ("file.php");// внутри описание функции myfunc без вызова

$url="www.site1.ru";//значение 1
myfunc ($url); ---------тут ошибку показывает

$url="www.site2.ru";//значение 2
myfunc ($url);

?>

выдаёт ошибку Call to undefined function: myfunc()

dkameleon
На сайте с 09.12.2005
Offline
386
#5
verhmax:
выдаёт ошибку Call to undefined function: myfunc()

Так вы ж свою функцию вызывайте ;)

Он для примера название указал.

verhmax
На сайте с 01.12.2005
Offline
191
#6
dkameleon:
Так вы ж свою функцию вызывайте

я в файле file.php указал


<?php
if (!function_exists("my_func")) {
function my_func($url)
{
echo $url;
}
}
?>
verhmax
На сайте с 01.12.2005
Offline
191
#7

всё! понял! спасибо! я в одном файле использовал myfunc, а в другом my_func по этому и не работало! ☝

Shema
На сайте с 01.12.2005
Offline
176
#8
dkameleon:
само тело функции необходимо взять в код:

if (!function_exists("my_func")) {
function my_func() {}
}

чтобы исключить повторную декларацию.

Это источник потенциальных ошибок.

Когда казалось бы функция вот она, а на самом деле вызывается другая.

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

dkameleon
На сайте с 09.12.2005
Offline
386
#9
Shema:

Когда казалось бы функция вот она, а на самом деле вызывается другая.

полагаю, такой сюрприз будет только нубу-программисту ;)

Shema:
но не стоит так делать для обычных функций.

Вы же не знаете, какие задачи стоят перед ТС. ;)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий