# Koenig (28.04.2015 / 08:02)В какую переменную, в статическую?
ДоХтор, да посмотри результат чтения файла, вроде там массив, вот его тупо запиши в переменную
# Koenig (28.04.2015 / 08:02)В какую переменную, в статическую?
ДоХтор, да посмотри результат чтения файла, вроде там массив, вот его тупо запиши в переменную
# Koenig (28.04.2015 / 12:22)Это понятно. Но идея в том, чтоб обращаться к текст-файлу только один раз(при первом вызове функции), а дальше уже работать без текст-файла(что-то типа кэша что-ли). Так вот я думал реализовать эту идею с помощью статической переменной, а потом с помощью константы - в обоих случаях ничего не вышло, думаю потому, что данные в скрипте хранятся до конца его выполнения, а потом удаляются. Ну не в сессию же сохранять сериализованную строку?
ДоХтор, массив или переменная в теле функции работает так же как и в обычном коде
ДоХтор, в классах такое я делал, пример построения хлебные крошек в библиотеке, там рекурсивно выполняются запросы пока не достигнет корня, и сохраняет ид и имя папки
![]()
отрефакторил гг, файл не нужен
<?php
/**
* @author ДоХтор <drzoom@mail.ru>
*
* @param string $string
* @return string
*/
function gradient($string){
static $colors = [
'492702', '5B2F0B', '734119', '856449', '988575', '8B947E',
'7D8C67', '7E9C50', '72A725', '77BA13', '6AA80D', '4C7B06',
'456F07', '365507', '2C4605', '223603', '1D2F03', '052E1C',
'043A22', '0B5031', '085B36', '0E6E42', '0D8C53', '4DAC81',
'5FB88F', '8BB4A1', '679681', '687F75', '51675D', '5D5F5E',
'4E5D5C', '567776', '575262', '554A6D', '54427B', '5B39A2',
'4F338B', '442684', '351777', '280B67', '220957', '15043A',
'130434', '17021C', '220329', '2C0336', '360642', '3C044A',
'490859', '530D65', '550B68', '6A157F', 'A122C1', 'DC1097',
'FA0E8F', 'FA054F'
];
$chars = preg_split('||u', $string, -1, PREG_SPLIT_NO_EMPTY);
$return = '';
foreach($chars as $char) {
$return .= '<span style="color: #'.$colors[array_rand($colors)].';">'.$char.'</span>';
}
return $return;
}
echo gradient('some text');
echo gradient('another text');# Koenig (28.04.2015 / 12:36)Я кстати тоже вспомнил, что ты мне говорил про ООП, и смотрел в эту сторону, но видать ещё не досмотрел
ДоХтор, в классах такое я делал, пример построения хлебные крошек в библиотеке, там рекурсивно выполняются запросы пока не достигнет корня, и сохраняет ид и имя папки
# Folour (28.04.2015 / 12:37)Спасибо, гг
отрефакторил гг, файл не нужен
[php]
<?php
/**
* @author ДоХтор <drzoom@mail.ru>
*
* @param string $string
* @return string
*/
function gradient($string){
static $colo
Folour, О, статик колор - это уже интересно! Ушёл читать ![]()
есть велосипед, смысл такой, делаем аргумент передаваемый в функцию по ссылке, в функции глобалим переменную, по умолчанию переменная пустая, после первой итерации массив будет доступен функции, в функции сделать проверку на заполненость аргумента, если пусто, то тянем файл
# Koenig (28.04.2015 / 12:52)Да, именно это и нужно. Я попробую реализовать сам. Спасибо =)
есть велосипед, смысл такой, делаем аргумент передаваемый в функцию по ссылке, в функции глобалим переменную, по умолчанию переменная пустая, после первой итерации массив будет доступен функции, в фун
ДоХтор, вообще не обязательно все это делать в теле функции, если только из личного интереса и практики, можно же массив получить до выполнения функции, и либо глобалить массив, либо передавать его аргументом