note 37312 added to function.sizeof

From: Date: Mon, 10 Nov 2003 07:02:45 +0000
Subject: note 37312 added to function.sizeof
Groups: php.notes 
Request: Send a blank email to php-notes+get-60199@lists.php.net to get a copy of this message
This is a little something that I made to mimic C's sizeof() for a script I may never complete, but I'll post it here for everyone, as it may be helpful. I haven't tested this so not quite sure if it works. function c_sizeof($type,$auto_detect=0) { if (!is_array($type)) { // if we're a single data type if ($auto_detect=0) { //if someone is just telling us a type switch ($type) { case "char": { return 1; } case "wchar_t": { return 2; } case "int": { return 4; } case "short": { return 2; } case "long": { return 4; } case "float": { return 4; } case "double": { return 8; } case "long double": { return 10; } case "bool": { return 1; } } } else {// or else we're an actual type $tvar=true; switch ($tvar) { case is_short($type): { unset($tvar); return 2; } case is_int($type): { unset($tvar); return 4; } case is_float($type): { unset($tvar); return 4; } case is_double($type): { unset($tvar); return 4; } case is_bool($type): { unset($tvar); return 1; } case is_string($type): { unset($tvar); return strlen($type); } } } } else { // or if we're an array // calculate array data usage in bytes. return c_sizeof_array($type); } } function c_sizeof_array(&$struct) { /* The recursive function for getting the size in bytes of an array */ $element_size=0; foreach ($struct as $key=>$val) { if (!is_array($val) { $element_size= ($element_size + c_sizeof($val,1)); } else { $element_size= ($element_size + c_sizeof_array($val)); } } return $element_size; } ---- Manual Page -- http://www.php.net/manual/en/function.sizeof.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+37312 Delete -- http://master.php.net/manage/user-notes.php?action=delete+37312&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+37312&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#60199) next »