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.
Ressourcen
Eine resource ist eine spezielle Variable, die eine Referenz zu einer externen Ressource darstellt. Ressourcen werden mit Hilfe spezieller Funktionen erzeugt und genutzt. Im Anhang finden Sie eine Liste all dieser Funktionen und der zugehörigen resource-Typen.
Hinweis: Der resource-Typ wunde in PHP 4 eingeführt.
Siehe auch get_resource_type().
Konvertierung von Resosurcen.
Da resource-Variablen spezielle Referenzen auf geöffnete Dateien, Datenbankverbindungen, Grafikbereichen usw. enthalten macht die Konvertierung von resource keinen Sinn.
Resourcen freigeben
Dank der mit der Zend Engine von PHP 4 eingeführten Referenzzähler werden Ressourcen, die von keiner Variablen mehr referenziert werden, automatisch erkannt und vom Garbage Collector freigegeben. Aus diesem Grund ist es selten nötig Speicher von Hand freizugeben.
Hinweis: Persistente Datenbankverbindungen sind eine Ausnahme von dieser Regel, sie werden nicht vom Garbage Collector entfernt. Mehr Informationen finden sie im Abschnitt Persistente Verbindungen.
Ressourcen
16-Dec-2008 12:17
07-Jul-2008 03: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.
16-Aug-2004 05:25
In response to yasuo_ohgaki, the reason for the inability of the $_SESSION[] variable to hold references is because a session is just a serialize()'d version of it's member variables saved under a unique filename, with this filename following the user around.
$_SESSION[] is therefore limited by the constraints of the serialize() function
Although this is not <i>strictly</i> true, ($_SESSION does some handling to convert messy variables (e.g. "s and ;s)) it cannot store resources due to the serialise() function's dependancy
22-Jun-2002 08:37
For the the oblivious: An example of a resource would be a mysql database connection.
$result = mysql_connect("localhost", "username", "pass");
//$result variable is a resource.
print $result;
//will print: Resource ID#1, or something similar
