2012-01-26 4 views
0

В настоящее время я работаю над плагином WordPress. Он поддерживает короткий код и создает элементы DOM при вызове короткого кода.PHP «постоянная переменная»

Теперь моя проблема: Я хочу идентифицировать элементы.

Так что, когда шорткод вызывается в первый раз, он должен вернуть что-то вроде

<div class="myClass-0"></div> 

и когда он получает называется второй раз

<div class="myClass-1"></div> 

И так далее.

Любые идеи по этому вопросу? Спасибо за помощь

Julian.

+0

Без кода - да, создать глобальную переменную и увеличивать его каждый раз, когда вы вызовете «шорткод». Используйте его значение для счетной части вашего класса. Поскольку у вас нет кода с вашей стороны, я надеюсь, вы узнаете, как его реализовать. –

ответ

5

Вы можете использовать static variable. Статическая переменная имеет свое значение во всем мире и сохраняется между вызовами функции:

function doSomething() { 
    static $i = 0; 
    ############## 

    return $i++; 
} 

doSomething(); // 0 
doSomething(); // 1 

Here's a demo. Он будет работать в методах класса, конечно, тоже, хотя в зависимости от ситуации, вы могли бы быть лучше использовать переменную экземпляра.

+0

Я проверил ваш код. Но, к сожалению, это не сработает. Кажется, что WordPress удаляет все переменные из этого скрипта. –

+0

@ Джулиан: Хорошо. Можете ли вы разместить какой-то код, пожалуйста? – Ryan

+0

Мой код был просто 'if (! $ ClassID) {$ classID = 0;} else {$ classID ++;}' Но, как я только что ответил, я исправил проблему, используя другую идею. –

0

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

+0

Я попытался использовать переменные сеанса. Но это тоже не сработало. Я не знаю, как работает wordpress реализация плагинов. Поэтому я не могу себе представить, почему ни одна из моих попыток не работала. –

-1

Ничто из ваших идей не сработало для меня.

WordPress, кажется, удаляет все статические и нештатные переменные. И переменные сеанса тоже.

Теперь у меня появилась новая идея и исправлена ​​проблема с использованием случайных чисел. Я написал эту функцию:

function jw_rand($length) 
{ 
    $return = ""; 
    for($a = 0; $a < $length; $a++) 
    { 
     $return .= mt_rand(0,9); 
    } 
    return $return; 
} 

Тогда я назвал его через <?php echo("<div class=\"myClass-".jw_rand(5)."\"></div>"); ?>

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

Спасибо за помощь. Возможно, какой-то WordPress pro может ответить на мой вопрос, объясняя, как работает интеграция с плагином и коротким кодом, и почему переменные исчезают после вызова плагина один раз.

Greets Джулиан

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