downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

NULL> <Les objets
[edit] Last updated: Fri, 10 Feb 2012

view this page in

Les ressources

Une ressource est une variable spéciale, contenant une référence vers une ressource externe. Les ressources sont créées et utilisées par des fonctions spéciales. Voir l'appendice pour une liste de toutes ces fonctions ainsi que les types de ressource correspondants.

Voir aussi la fonction get_resource_type().

Conversion en ressource

Sachant qu'une ressource représente un fichier ouvert, une connexion à une base de données, une image, etc..., la conversion en une ressource n'a pas de sens.

Libération des ressources

Sachant qu'une ressource qui n'a plus aucune référence est détectée automatiquement et est libérée par le collecteur, il est rarement nécessaire de libérer la mémoire manuellement.

Note: Les connexions persistantes aux bases de données sont des exceptions à cette règle. Elles ne sont pas détruites par le collecteur. Voir la section sur les connexions persistantes pour plus d'informations.



NULL> <Les objets
[edit] Last updated: Fri, 10 Feb 2012
 
add a note add a note User Contributed Notes Les ressources
Soos Gergely 26-Apr-2010 07:24
It is always wrong to assume that some operation, like casting to a resource makes no sense. People will always find some extreme case where it would be useful; like the previous example with mysql. My problem was that I wanted to start daemons from a web interface but the apache filehandles were inherited which caused that apache was unable to restart. If I could only typecast a number to a filehandle and then close it... Instead I had to write a small C program that closes every filehandle and then starts my program. I surely miss Apache2::SubProcess from perl. (Also, in perl you can reopen a file and then close it using IO::Handle module's fdopen. I'm just saying.)
wetmonkey__ at at __gmail dot com 15-Dec-2008 05:17
Resources are commonly used to iterate through a mysql or file handle.
example

<?php
while($row = mysql_fetch_row($resource)){
  echo
$row[0] ;
}
?>

It's possible to fake this treatment.

<?php
class fakewhile{

public
$arrayCount;
public
$arrayCounter;

function
setArrValues(){
  
$this->arrValues = array(0 =>array("apple","artichoke","apricot"),1 => array("bears","dogs","cats"));
 
$this->arrayCounter = 0;
 
$this->arrayCount = count($this->arrValues);
}

function
outputValues(){
/*
 * Anything until the if statement is evaluted one more
 * time then the array count value
 */
 
$arrayInfo = $this->arrValues;
 
$arrCounter = $this->arrayCounter;
 if(
$arrCounter > $this->arrayCount){
  return
false;
 }
 
$endCounter = $arrCounter+1;
 
$this->arrayCounter = $endCounter;
 return
$arrayInfo[$arrCounter];
}

}

$fw = new fakewhile();
$fw->setArrValues();
while(
$row = $fw->outputValues()){
   
print_r($row);
}
?>

Hopefully will get someone started on completing a complete application.
adrian dot dziubek at gmail dot com 07-Jul-2008 10:55
I spent an hour trying to create mock setup for testing SQL queries. The explanation here, that a resource contains file handlers and therefore there is no sense in trying to create one is lame. Being unable to redefine functions, creating a fake resource was the second thing I tried to put test in place, but looking at the search results, I see I'm the first one to try... For me it looks like security by obscurity.

 
show source | credits | sitemap | contact | advertising | mirror sites