Вы можете добавить к всем объектам простую функцию forEach , чтобы вы могли автоматически прокручивать любой объект:
Object.defineProperty(Object.prototype, 'forEach', {
value: function (func) {
for (var key in this) {
if (!this.hasOwnProperty(key)) {
// skip loop if the property is from prototype
continue;
}
var value = this[key];
func(key, value);
}
},
enumerable: false
});
Для тех людей, которым не нравится " для ... в "- метод:
Object.defineProperty(Object.prototype, 'forEach', {
value: function (func) {
var arr = Object.keys(this);
for (var i = 0; i < arr.length; i++) {
var key = arr[i];
func(key, this[key]);
}
},
enumerable: false
});
Теперь вы можете просто позвонить:
p.forEach (function(key, value){
console.log ("Key: " + key);
console.log ("Value: " + value);
});
Если вы не хотите получить конфликты с другими forEach-методами, которые вы можете назвать им с вашим уникальным именем.
Переменные среды наследованы процессами в Unix. Файлы в/etc/profile.d только выполняются (в текущей оболочке, не в подоболочке), когда Вы входите в систему. Просто изменение значения, тут же перезапускающего процесс, не обновит среду.
Возможные меры:
# . /etc/profile.d/foo.sh
, затем апач перезапускаТакже необходимо удостовериться это /etc/profile.d/
получен, когда Apache запускается init
вместо себя.
Лучшая фиксация могла бы также зависеть от распределения, которое Вы используете, потому что они используют различные схемы конфигурации.
Можно использовать SetEnv в файлах конфигурации (/etc/httpd/conf.d / *.conf, .htaccess...). Дополнительно необходимо смочь определить их в/etc/sysconfig/httpd (на ОСНОВАННОМ НА ОБ/МИН distribs) и экспортировать их (примечание: не протестированный).
Примечание: меня не удивило бы, если бы некоторые дистрибутивы пытались довольно трудно скрыться как можно больше, что касается системной конфигурации, от публично доступного сервиса, такого как Apache. И если они не делают, они могли бы начать делать это в будущей версии. Следовательно я советую Вам делать это явно. Если необходимо совместно использовать такую установку между Apache и оболочками, Вы могли бы попытаться получить/etc/profile.d/yourprofile.sh от/etc/sysconfig/httpd
Файлы конфигурации Apache позволяют Вам устанавливать переменные среды на на основание сайта.
Таким образом, если Ваш веб-сервер служит страницам от двух логических сайтов, можно было установить ту же переменную среды по-другому для каждого сайта и таким образом заставить PHP реагировать по-другому.
Посмотрите Apache mod_env для деталей: