1--TEST-- 2casting different variables to resource using settype() 3--FILE-- 4<?php 5 6$r = fopen(__FILE__, "r"); 7 8class test { 9 function __toString() { 10 return "10"; 11 } 12} 13 14$o = new test; 15 16$vars = array( 17 "string", 18 "8754456", 19 "", 20 "\0", 21 9876545, 22 0.10, 23 array(), 24 array(1,2,3), 25 false, 26 true, 27 NULL, 28 $r, 29 $o 30); 31 32foreach ($vars as $var) { 33 try { 34 settype($var, "resource"); 35 } catch (ValueError $exception) { 36 echo $exception->getMessage() . "\n"; 37 } 38 var_dump($var); 39} 40 41echo "Done\n"; 42?> 43--EXPECTF-- 44Cannot convert to resource type 45string(6) "string" 46Cannot convert to resource type 47string(7) "8754456" 48Cannot convert to resource type 49string(0) "" 50Cannot convert to resource type 51string(1) "" 52Cannot convert to resource type 53int(9876545) 54Cannot convert to resource type 55float(0.1) 56Cannot convert to resource type 57array(0) { 58} 59Cannot convert to resource type 60array(3) { 61 [0]=> 62 int(1) 63 [1]=> 64 int(2) 65 [2]=> 66 int(3) 67} 68Cannot convert to resource type 69bool(false) 70Cannot convert to resource type 71bool(true) 72Cannot convert to resource type 73NULL 74Cannot convert to resource type 75resource(%d) of type (stream) 76Cannot convert to resource type 77object(test)#%d (0) { 78} 79Done 80