Порядок переменных php в файле - PullRequest
2 голосов
/ 04 марта 2012

Это может звучать странно. Мне нужен самый простой способ зарегистрировать порядок переменных в файле php. Позвольте привести пример:

Допустим, вы определили 3 переменные:

<?php
$adam = 'the yes man';
$ben = 'the hard worker';
$john = 'the slave';
?>

В другом php-файле вам нужно знать порядок этих переменных (вы знаете, что это переменные adam, ben и john, но вы не знаете, в каком порядке они были набраны). Не разбирая слишком много кода вокруг переменных, как узнать порядок?

EDIT:

Спасибо за все хорошие ответы. Решение пришло в духе того, что сказал @ blackpla9ue.

Вместо этого создал массив и теперь может циклически перемещаться по позициям (0-> 1-> 2-> 3 -> ...).

<?php
   $array = array(
   'adam' => 'the yes man',
   'ben' => 'the hard worker',
   'john' => 'the slave'
   )
<?

<?php
   $array_pos = array_keys($array);

   $person1 = $array_pos[0];
   $person1_is = $array[$array_pos[0]];
?>

Вы также можете использовать:

<?php  
   foreach ($array as $key => $value)
      statement
?>

Ответы [ 4 ]

3 голосов
/ 04 марта 2012

Есть функция с именем get_defined_vars(), которая дает вам массив, содержащий все ваши определенные переменные в том порядке, в котором они были определены.

Попробуйте:

<?php
$prev = get_defined_vars();
$ben = 'the hard worker';
$adam = 'the yes man';
$john = 'the slave';
# removing the builtin stuff you get, like $_REQUEST and such
var_dump(array_diff(get_defined_vars(), $prev));
2 голосов
/ 04 марта 2012

Храните их в массиве.

<?php
$array = array(
'adam'=>'the yes man', 
'ben'=>'the hard worker', 
'john'=>'the slave'
);
2 голосов
/ 04 марта 2012

Почему вы не используете array

$users = array('adam' => 'the yes man',
               'ben' => 'the hard worker',
               'john' => 'the slave');

Если вы хотите получить позиции, используйте,

$positions = array_keys($users);

echo array_search('ben', $positions); // 1
echo array_search('john', $positions); // 2
0 голосов
/ 04 марта 2012

Если вы можете изменить первый сценарий, где вы объявляете эти переменные, вы можете добавить

<?php
$order = array();
$adam = 'the yes man';
$order[] = 'admin';
$ben = 'the hard worker';
$order[] = 'ben';
$john = 'the slave';
$order[] = 'john';
?>

во второй сценарий, вы можете использовать array_search, чтобы найти порядок объявления.

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