(более общий вариант Предупреждение: mysql_fetch_array () ожидает, что параметр 1 будет resource, boolean given )
Ресурсы - это тип в PHP (например, строки, целые числа или объекты). Ресурс является непрозрачным блобом без собственной значимой ценности. Ресурс специфичен и определен определенным набором функций или расширений PHP. Например, расширение Mysql определяет два типа ресурсов :
В модуле MySQL есть два типа ресурсов. Первый - идентификатор ссылки для подключения к базе данных, второй - ресурс, который содержит результат запроса.
Расширение cURL определяет другой два типа ресурсов :
... дескриптор cURL и мультирум cURL.
Когда
var_dump
ed значения выглядят так:$resource = curl_init(); var_dump($resource); resource(1) of type (curl)
Это все большинство ресурсов - это числовой идентификатор (
(1)
) определенного типа ((curl)
).Вы переносите эти ресурсы и передаете их различным функциям, для которых такой ресурс что-то значит. Обычно эти функции выделяют определенные данные в фоновом режиме, а ресурс - это просто ссылка, которую они используют для отслеживания этих данных внутри.
«... ожидает, что параметр 1 будет ресурсом, логическим данная "ошибка, как правило, является результатом непроверенной операции, которая должна была создать ресурс, но вместо этого вернула
false
. Например, функцияfopen
имеет это описание:Возвращаемые значения
Возвращает ресурс указателя файла при успешном выполнении или
FALSE
Таким образом, в этом коде
$fp
будет либоresource(x) of type (stream)
, либоfalse
:$fp = fopen(...);
Если вы не операция
fopen
будет успешной или неудачной и, следовательно, будет ли$fp
действительным ресурсом илиfalse
и передать$fp
другой функции, которая ожидает ресурс, вы можете получить вышеуказанную ошибку:$fp = fopen(...); $data = fread($fp, 1024); Warning: fread() expects parameter 1 to be resource, boolean given
Вам всегда нужно проверять возвращаемое значение функций, которые пытаются выделить ресурс , и может выйти из строя :
$fp = fopen(...); if (!$fp) { trigger_error('Failed to allocate resource'); exit; } $data = fread($fp, 1024);
Связанные ошибки:
Быстрый тест, кажется, показывает, что эти настройки только загружаются при запуске приложения.
//edit the config file now.
Console.ReadLine();
Console.WriteLine(ConfigurationManager.AppSettings["ApplicationName"].ToString());
Console.WriteLine("Press enter to redisplay");
//edit the config file again now.
Console.ReadLine();
Console.WriteLine(ConfigurationManager.AppSettings["ApplicationName"].ToString());
Console.ReadLine();
Вы будете видеть, что все выводы остаются тем же.
Это читает файл конфигурации приложения (MyApp.exe.config) однажды при запуске приложения, как может легко быть проверен путем изменения файла, в то время как приложение работает.
комментарий в сообщении форума, на которое ссылается OP, был:
значения для Web.config хранятся в кэш/память, когда приложение запускается следовательно, почему приложение перезапускает, когда любые изменения внесены в web.config. Обратите внимание, что это только относится к Web.config, к любым другим .config файлам, которые можно использовать, получает доступ от диска значение по умолчанию
, я интерпретировал бы этот комментарий как то, чтобы подразумевать, что к файлам конфигурации кроме web.config в приложении ASP.NET получают доступ от диска по умолчанию. И точно так же к файлам конфигурации кроме MyApp.exe.config в приложении WinForms/Console получают доступ от диска по умолчанию.
Этот комментарий не указывает, что MyApp.exe.config читается из диска по умолчанию.
Не имеет значения, если это делает или нет. Не решайте проблему производительности, если нет того.
Как John говорит, только проводят больше времени на этом, если Вы на самом деле видите хит производительности.
Также я вполне уверен, который эти приложения содержат конфигурация в памяти , и видеть любые изменения в конфигурации, которой приложение должно было бы быть , перезапустил .
Для [приблизительно 110] дополнительные материалы для чтения об остающихся тайнах.
приложение кэшируется. Вы можете улучшить производительность путем дальнейшего кэширования, чтобы ограничить поиск названия NameValueCollection.