2010-09-07 2 views
0

Как определить глобальную переменную ($ begin), которая будет распознана во всех php-файлах? (пожалуйста, не менять место код только добавить, потому что я работаю над большим проектом, который я могу только добавить код)Как определить глобальную переменную, которая будет распознана во всех файлах php (внутри)?

Дело: (проблема $ начинают не признается в конце файла)

<?php $begin=time()?> 
    <div>new name</div> 
<?php echo time()-$begin; ?> 

Edit: меня глупая ошибка в файле, теперь код работает, спасибо

Благодаря

+3

Подсказка: может быть, вы перепишете его где-нибудь? Кстати, что значит «во всем php-файле»? – fabrik

+0

Что значит «не признано»? Какое точное сообщение об ошибке вы получаете? Вы определяете $ begin внутри функции? Или, может быть, в заявлении if? – greg0ire

+0

весь файл PHP, я думаю, что он означает всю компиляцию приложения. – RobertPitt

ответ

1

Вы используете, константы, поскольку они имеют глобальную область видимости.

<?php define('TS_START',time())?> 
    <div>new name</div> 
<?php echo time()-TS_START; ?> 

или если вы не можете сделать это из-за своего «большого» проекта. возможно, вы хотите удвоить его.

<?php $begin = $_begin = $__begin = time()?> 
    <div>new name</div> 
<?php echo time()- ($begin ? $begin : ($_begin ? $_begin : $__begin)); ?> 

бедных программирования, хотя, нет никакой необходимости в том, что многих Варсах для одного небольшого объекта, я бы переписать с определить и переписать все экземпляры $begin с TS_START

2

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

<?php 

$begin = time(); 

?> 

Вы можете добавить следующую строку в верхней части каждого PHP файла, который должен доступ к переменной:

<?php include 'config.php'; ?> 

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

<?php 

define('BEGIN', time()); 

?> 

И тогда любой сценарий, который имеет включаемый упоминалось выше, может просто включить этот код:

<?php echo time() - BEGIN; ?> 
1

С примером вы дали, там нет причина, по которой $ begin не должна оставаться действительной в конце программы.

  • Вы проверили, что вы не используете имя $ begin для чего-то еще в вашей программе?

  • Аналогичным образом, вы можете включить сторонний код, который использует $ begin? В любом случае, рассмотрите возможность изменить имя переменной, которое вы используете, на более уникальный.

  • В примере весь ваш код находится в глобальной области. Но если ваш реальный код использует для них функции, то $ begin будет находиться в области функционального уровня, поэтому не будет глобальным. В этом случае самым быстрым вариантом было бы добавить глобальный $ begin; в верхней части обеих функций.

Смежные вопросы