--TEST-- "lcfirst()" function --INI-- precision=14 --FILE-- false); public function __call($m, $v) { if (stristr($m, 'set')) { $action = lcfirst(substr($m, 3)); $this->$action = $v[0]; } } public function __set($key, $value) { if (array_key_exists($key, $this->vars)) { $this->vars[$key] = $value; } } public function __get($key) { if (array_key_exists($key, $this->vars)) { return $this->vars[$key]; } } } $class = new Setter(); $class->setPartnerName('partnerName'); var_dump($class->partnerName); echo "\n--- Testing objects ---\n"; /* we get "Catchable fatal error: saying Object of class could not be converted to string" by default when an object is passed instead of string: The error can be avoided by choosing the __toString magix method as follows: */ class string { function __toString() { return "Hello world"; } } $obj_string = new string; var_dump(lcfirst("$obj_string")); echo "\n--- Testing Resources ---\n"; $filename1 = "dummy.txt"; $file1 = fopen($filename1, "w"); // creating new file /* getting resource type for file handle */ $string1 = get_resource_type($file1); $string2 = (int)get_resource_type($file1); // converting stream type to int /* $string1 is of "stream" type */ var_dump(lcfirst($string1)); /* $string2 holds a value of "int(0)" */ var_dump(lcfirst($string2)); fclose($file1); // closing the file "dummy.txt" unlink("$filename1"); // deletes "dummy.txt" echo "\n--- Testing a longer and heredoc string ---\n"; $string = << --EXPECTF-- #### Basic and Various operations #### Notice: Use of undefined constant string - assumed 'string' in %s on line %d string(16) "tesTing lcfirst." string(17) "1.testing lcfirst" string(11) "hELLO wORLD" string(11) "hELLO wORLD" string(1) "" string(1) "" string(2) "0" string(4) "abcd" string(3) "xyz" string(6) "string" string(2) "-3" string(2) "-3" string(6) "-3.344" string(6) "-3.344" string(0) "" string(4) "nULL" string(1) "0" string(1) "0" string(1) "1" string(4) "tRUE" string(1) "1" string(1) "1" string(8) "1.234444" string(0) "" string(5) "fALSE" string(1) " " string(5) " " string(1) "b" string(2) "\t" string(1) " " string(2) "12" string(8) "12twelve" #### Testing Miscelleneous inputs #### --- Testing arrays --- Warning: lcfirst() expects parameter 1 to be string, array given in %s on line %d NULL --- Testing lowercamelcase action call example --- string(%d) "partnerName" --- Testing objects --- string(11) "hello world" --- Testing Resources --- string(6) "stream" string(1) "0" --- Testing a longer and heredoc string --- string(639) "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789 abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789 abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789 abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789 abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789 abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789 abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789 @#$%^&**&^%$#@!~:())))((((&&&**%$###@@@!!!~~~~@###$%^&* abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789" --- Testing a heredoc null string --- string(0) "" --- Testing simple and complex syntax strings --- string(5) "world" string(7) "world'S" Notice: Undefined variable: strS in %s on line %d string(0) "" string(6) "worldS" string(6) "worldS" --- Nested lcfirst() --- string(5) "hello" #### error conditions #### Warning: lcfirst() expects exactly 1 parameter, 0 given in %s on line %d Warning: lcfirst() expects exactly 1 parameter, 2 given in %s on line %d Warning: lcfirst() expects exactly 1 parameter, 2 given in %s on line %d Done