Это предупреждение может появляться с различными функциями, связанными с доступом к файлам и каталогам. Он предупреждает о проблеме с конфигурацией.
Когда он появляется, это означает, что доступ был запрещен для некоторых файлов.
Само предупреждение ничего не нарушает, но чаще всего скрипт не работает должным образом, если предотвращается доступ к файлу.
Исправление обычно изменяет конфигурацию PHP , связанная настройка называется open_basedir
.
Иногда неправильный имена файлов или каталогов, тогда исправление должно использовать правильные.
Вопросы, относящиеся
Используйте метод Kernel#Array:
Array([1,2,3]) #=> [1, 2, 3]
Array(123) #=> [123]
Да это может быть похожим на класс сначала, но это - на самом деле метод, который запускается с прописной буквы.
Кажется, что [только 117] Object.to_a
удерживаются от использования, удаляя значение по умолчанию to_a
и вынуждая каждый класс определить его собственное (например, Hash.to_a
).
self.to_a #=> -:1: warning: default `to_a' will be obsolete
"hello".to_a #=> ["hello"]
Time.new.to_a #=> [39, 54, 8, 9, 4, 2003, 3, 99, true, "CDT"]
h = { "c" => 300, "a" => 100, "d" => 400, "c" => 300 }
h.to_a #=> [["a", 100], ["c", 300], ["d", 400]]
, Если Вашим аргументом является экземпляр Object
, попробуйте:
Hash.new(obj).to_a
<час> @Daniel [комментируют к Ollivier]: Дело в том, что я не знаю, каков аргумент. Если это уже - массив, я хочу оставить его, иначе создать массив с одним элементом.
, Если это так, попробуйте:
obj = [obj] if !obj.is_a?(Array)
Я делаю это много, и всегда использую:
arg = [arg] unless arg.is_a?(Array)
, Хотя, если Вы знаете, что никогда не являетесь передающими в массивах как отдельные аргументы, которые можно также сделать:
arg = [arg].flatten
Можно взять утку, вводящую подход, если это удовлетворяет проблеме лучше, составьте список всех методов, в которых Вы нуждаетесь, и проверка, если объект уже имеет их, в противном случае делает его массивом:
[:[], :each, :etc...].all? { |m| obj.respond_to? m } ? obj : [obj]
преимущество состоит в том, что Вы даете объекту шанс реализовать свою собственную семантику для индексного доступа.
Я не уверен, помогает ли это, но в чем я часто нуждаюсь, не то, что аргумент является массивом, но что аргумент отвечает каждому.
arg = [arg] unless arg.respond_to? :each