CVE-2014-125107: Protection Mechanism Failure (CWE-693)
value: A vulnerability was found in Corveda PHPSandbox 1.3.4 and classified as critical. Affected by this issue is some unknown functionality of the component String Handler. The manipulation leads to protection mechanism failure. The attack may be launched remotely. Upgrading to version 1.3.5 is able to address this issue. The patch is identified as 48fde5ffa4d76014bad260a3cbab7ada3744a4cc. It is recommended to upgrade the affected component. VDB-248270 is the identifier assigned to this vulnerability.
CWE description: The product does not use or incorrectly uses a protection mechanism that provides sufficient defense against directed attacks against the product.
CVSS v3 base score: 5.3
Published: 2023-12-19T03:15Z
Repository: https://github.com/Corveda/PHPSandbox
Language: HTML
Files changed: CHANGELOG.md, LICENSE, MANUAL.html, README.md, docs/classes/PHPSandbox.Error.html, docs/classes/PHPSandbox.PHPSandbox.html, docs/classes/PHPSandbox.SandboxWhitelistVisitor.html, docs/classes/PHPSandbox.SandboxedString.html, docs/classes/PHPSandbox.ValidatorVisitor.html, docs/classes/PHPSandbox.WhitelistVisitor.html, docs/files/Error.php.html, docs/files/Error.php.txt, docs/files/PHPSandbox.php.html, docs/files/PHPSandbox.php.txt, docs/files/SandboxWhitelistVisitor.php.html, docs/files/SandboxWhitelistVisitor.php.txt, docs/files/SandboxedString.php.html, docs/files/SandboxedString.php.txt, docs/files/ValidatorVisitor.php.html, docs/files/ValidatorVisitor.php.txt, docs/files/WhitelistVisitor.php.html, docs/files/WhitelistVisitor.php.txt, docs/graphs/class.html, docs/index.html, docs/namespaces/PHPSandbox.html, docs/namespaces/default.html, docs/reports/deprecated.html, docs/reports/errors.html, docs/reports/markers.html, src/PHPSandbox/Error.php, src/PHPSandbox/PHPSandbox.php, src/PHPSandbox/SandboxWhitelistVisitor.php, src/PHPSandbox/SandboxedString.php, src/PHPSandbox/ValidatorVisitor.php, src/PHPSandbox/WhitelistVisitor.php, tests/PHPSandbox/Tests/Config/DefaultConfigTest.php, toolkit/index.php, toolkit/templates/002 - Evil Function.json	
Commit date: 2014-03-10 17:10:27 -0400
Commit message: - Addressed potential vulnerabilities related to SandboxedStrings where sandboxed code could manipulate the strings in a way that could defeat their protection
- Solved errors from casting sandboxed strings to int
- Overwrote some internal PHP functions to further mask SandboxedStrings from the sandboxed code and prevent type-checking errors
- Added more tests related to SandboxedStrings
- Made some minor tweaks to PHPSandbox Toolkit

Diff: diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5ed2f8a..8fc05d2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,14 @@
 #CHANGELOG
 
+##03/10/2014
+- Addressed potential vulnerabilities related to SandboxedStrings where sandboxed code could manipulate the strings in a way that could defeat their protection
+- Solved errors from casting sandboxed strings to int
+- Overwrote some internal PHP functions to further mask SandboxedStrings from the sandboxed code and prevent type-checking errors
+- Added more tests related to SandboxedStrings
+- Made some minor tweaks to PHPSandbox Toolkit
+
 ##03/05/2014
 - Corrected an issue where the sandbox variable could be accessed from within the sandbox in PHP 5.4+
 
 ##03/03/2014
 - Implemented function checking mechanism for callbacks, which should now obey function whitelists and blacklists
diff --git a/LICENSE b/LICENSE
index 3c57c72..a675b58 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
-Copyright (c) 2013 by Elijah Horton (fieryprophet [at] yahoo.com)
+Copyright (c) 2013-2014 by Elijah Horton (fieryprophet [at] yahoo.com)
 
 Some rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are
diff --git a/MANUAL.html b/MANUAL.html
index 8627555..9f50f2b 100644
--- a/MANUAL.html
+++ b/MANUAL.html
@@ -32,11 +32,11 @@
                 <a href="https://github.com/fieryprophet/php-sandbox" target="_blank">
                     <img src="data:image/png;base64,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" alt="PHPSandbox" style="border: 0;">
                 </a>
                 <br/>
                 <h1 style="margin: 0;">
-                    PHPSandbox Toolkit 1.3.1
+                    PHPSandbox Toolkit 1.3.3
                 </h1>
                 <br/>
                 <strong>Developed by: </strong> <a href="http://www.fieryprophet.com" target="_blank">Elijah Horton</a>
                 &mdash;
                 <a href="https://github.com/fieryprophet/php-sandbox" target="_blank">Github</a>
diff --git a/README.md b/README.md
index e890130..1ec998d 100644
--- a/README.md
+++ b/README.md
@@ -6,15 +6,11 @@ It also utilizes [FunctionParser](https://github.com/jeremeamia/FunctionParser)
 
 **Manual:** [http://fieryprophet.com/phpsandbox-docs/MANUAL.html](http://fieryprophet.com/phpsandbox-docs/MANUAL.html)
 
 **Online API Documentation:** [http://fieryprophet.com/phpsandbox-docs/](http://fieryprophet.com/phpsandbox-docs/)
 
-[![Build Status](https://travis-ci.org/fieryprophet/php-sandbox.png?branch=master)](https://travis-ci.org/fieryprophet/php-sandbox)
-
-[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/badges/quality-score.png?s=4f2d82525b9e2c6bae18e26cf643ca3fd09333fc)](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/)
-
-[![Code Coverage](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/badges/coverage.png?s=d6cef7d18a66d2ac39b76410b76c89fa15d84b8c)](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/)
+[![Build Status](https://travis-ci.org/fieryprophet/php-sandbox.png?branch=master)](https://travis-ci.org/fieryprophet/php-sandbox) [![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/badges/quality-score.png?s=4f2d82525b9e2c6bae18e26cf643ca3fd09333fc)](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/) [![Code Coverage](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/badges/coverage.png?s=d6cef7d18a66d2ac39b76410b76c89fa15d84b8c)](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/) [![Latest Stable Version](https://poser.pugx.org/fieryprophet/php-sandbox/v/stable.png)](https://packagist.org/packages/fieryprophet/php-sandbox) [![Total Downloads](https://poser.pugx.org/fieryprophet/php-sandbox/downloads.png)](https://packagist.org/packages/fieryprophet/php-sandbox) [![Latest Unstable Version](https://poser.pugx.org/fieryprophet/php-sandbox/v/unstable.png)](https://packagist.org/packages/fieryprophet/php-sandbox) [![License](https://poser.pugx.org/fieryprophet/php-sandbox/license.png)](https://packagist.org/packages/fieryprophet/php-sandbox)
 
 ##Features:
 
 - Finegrained whitelisting and blacklisting, with sensible defaults configured.
 - **Includes dynamic demonstration system that allows for local testing of custom sandbox configurations**
diff --git a/docs/classes/PHPSandbox.Error.html b/docs/classes/PHPSandbox.Error.html
index f821e5b..35399a2 100644
--- a/docs/classes/PHPSandbox.Error.html
+++ b/docs/classes/PHPSandbox.Error.html
@@ -137,23 +137,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-553992218"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2138946611"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-553992218" class="accordion-body collapse in">
+            <div id="namespace-2138946611" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-2135081389"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-288135741"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-2135081389" class="accordion-body collapse ">
+            <div id="namespace-288135741" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -2446,11 +2446,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/classes/PHPSandbox.PHPSandbox.html b/docs/classes/PHPSandbox.PHPSandbox.html
index af4c723..2727025 100644
--- a/docs/classes/PHPSandbox.PHPSandbox.html
+++ b/docs/classes/PHPSandbox.PHPSandbox.html
@@ -137,23 +137,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-148348232"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1578178908"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-148348232" class="accordion-body collapse in">
+            <div id="namespace-1578178908" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1647787725"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-736098440"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-1647787725" class="accordion-body collapse ">
+            <div id="namespace-736098440" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -293,16 +293,25 @@ only has to create a PHPSandbox instance, configure its options, and run their c
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method__get_magic_const" class="">_get_magic_const()</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method__get_defined_constants" class="">_get_defined_constants()</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method__get_declared_classes" class="">_get_declared_classes()</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method__get_declared_interfaces" class="">_get_declared_interfaces()</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method__get_declared_traits" class="">_get_declared_traits()</a><br />
-                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__var_dump" class="">_var_dump()</a><br />
-                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__print_r" class="">_print_r()</a><br />
-                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__var_export" class="">_var_export()</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method__func_get_args" class="">_func_get_args()</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method__func_get_arg" class="">_func_get_arg()</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method__func_num_args" class="">_func_num_args()</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__wrap" class="">_wrap()</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__var_dump" class="">_var_dump()</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__print_r" class="">_print_r()</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__var_export" class="">_var_export()</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__intval" class="">_intval()</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__floatval" class="">_floatval()</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__arrayval" class="">_arrayval()</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__objectval" class="">_objectval()</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__is_string" class="">_is_string()</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__is_object" class="">_is_object()</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__is_scalar" class="">_is_scalar()</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__is_callable" class="">_is_callable()</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method_call_func" class="">call_func()</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method_define" class="">define()</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method_undefine" class="">undefine()</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method_define_func" class="">define_func()</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#method_define_funcs" class="">define_funcs()</a><br />
@@ -547,12 +556,12 @@ only has to create a PHPSandbox instance, configure its options, and run their c
                                                             </section>
                             <section class="span4">
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_superglobals" class="">$superglobals</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_magic_constants" class="">$magic_constants</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_defined_funcs" class="">$defined_funcs</a><br />
-                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#property_var_funcs" class="">$var_funcs</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_arg_funcs" class="">$arg_funcs</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#property_sandboxed_string_funcs" class="">$sandboxed_string_funcs</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_name" class="">$name</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_error_level" class="">$error_level</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_restore_error_level" class="">$restore_error_level</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_capture_output" class="">$capture_output</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_auto_whitelist_trusted_code" class="">$auto_whitelist_trusted_code</a><br />
@@ -562,12 +571,12 @@ only has to create a PHPSandbox instance, configure its options, and run their c
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_auto_whitelist_classes" class="">$auto_whitelist_classes</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_auto_whitelist_interfaces" class="">$auto_whitelist_interfaces</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_auto_whitelist_traits" class="">$auto_whitelist_traits</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_auto_define_vars" class="">$auto_define_vars</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_overwrite_defined_funcs" class="">$overwrite_defined_funcs</a><br />
-                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#property_overwrite_var_funcs" class="">$overwrite_var_funcs</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_overwrite_func_get_args" class="">$overwrite_func_get_args</a><br />
+                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#property_overwrite_sandboxed_string_funcs" class="">$overwrite_sandboxed_string_funcs</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_overwrite_superglobals" class="">$overwrite_superglobals</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_allow_functions" class="">$allow_functions</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_allow_closures" class="">$allow_closures</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_allow_variables" class="">$allow_variables</a><br />
                                                                     <a href="../classes/PHPSandbox.PHPSandbox.html#property_allow_static_variables" class="">$allow_static_variables</a><br />
@@ -983,21 +992,21 @@ only has to create a PHPSandbox instance, configure its options, and run their c
         </aside>
     </div>
 
                                     <div class="row-fluid">
         <div class="span8 content class">
-            <a id="property_var_funcs" name="property_var_funcs" class="anchor"></a>
+            <a id="property_arg_funcs" name="property_arg_funcs" class="anchor"></a>
             <article class="property">
-                <h3 class="public ">$var_funcs</h3>
-                <pre class="signature">$var_funcs : array</pre>
+                <h3 class="public ">$arg_funcs</h3>
+                <pre class="signature">$arg_funcs : array</pre>
                 <p><em></em></p>
                 
 
 
                                 <h4>Type</h4>
                 array
-                &mdash; A static array of var_dump, print_r and var_export for redefining those functions                            </article>
+                &mdash; A static array of func_get_args, func_get_arg, and func_num_args used for redefining those functions                            </article>
         </div>
         <aside class="span4 detailsbar">
             <h1><i class="icon-arrow-down"></i></h1>
                         <dl>
                                                             </dl>
@@ -1008,21 +1017,22 @@ only has to create a PHPSandbox instance, configure its options, and run their c
         </aside>
     </div>
 
                                     <div class="row-fluid">
         <div class="span8 content class">
-            <a id="property_arg_funcs" name="property_arg_funcs" class="anchor"></a>
+            <a id="property_sandboxed_string_funcs" name="property_sandboxed_string_funcs" class="anchor"></a>
             <article class="property">
-                <h3 class="public ">$arg_funcs</h3>
-                <pre class="signature">$arg_funcs : array</pre>
+                <h3 class="public ">$sandboxed_string_funcs</h3>
+                <pre class="signature">$sandboxed_string_funcs : array</pre>
                 <p><em></em></p>
                 
 
 
                                 <h4>Type</h4>
                 array
-                &mdash; A static array of func_get_args, func_get_arg, and func_num_args used for redefining those functions                            </article>
+                &mdash; A static array of var_dump, print_r and var_export, intval, floatval, is_string, is_object,
+                         is_scalar and is_callable for redefining those functions                            </article>
         </div>
         <aside class="span4 detailsbar">
             <h1><i class="icon-arrow-down"></i></h1>
                         <dl>
                                                             </dl>
@@ -1454,21 +1464,21 @@ only has to create a PHPSandbox instance, configure its options, and run their c
         </aside>
     </div>
 
                                     <div class="row-fluid">
         <div class="span8 content class">
-            <a id="property_overwrite_var_funcs" name="property_overwrite_var_funcs" class="anchor"></a>
+            <a id="property_overwrite_func_get_args" name="property_overwrite_func_get_args" class="anchor"></a>
             <article class="property">
-                <h3 class="public ">$overwrite_var_funcs</h3>
-                <pre class="signature">$overwrite_var_funcs : bool</pre>
+                <h3 class="public ">$overwrite_func_get_args</h3>
+                <pre class="signature">$overwrite_func_get_args : bool</pre>
                 <p><em></em></p>
                 
 
 
                                 <h4>Type</h4>
                 bool
-                &mdash; Should PHPSandbox overwrite var_dump, print_r, and var_export?                            </article>
+                &mdash; Should PHPSandbox overwrite func_get_args, func_get_arg and func_num_args?                            </article>
         </div>
         <aside class="span4 detailsbar">
             <h1><i class="icon-arrow-down"></i></h1>
                         <dl>
                                                             </dl>
@@ -1487,21 +1497,21 @@ only has to create a PHPSandbox instance, configure its options, and run their c
         </aside>
     </div>
 
                                     <div class="row-fluid">
         <div class="span8 content class">
-            <a id="property_overwrite_func_get_args" name="property_overwrite_func_get_args" class="anchor"></a>
+            <a id="property_overwrite_sandboxed_string_funcs" name="property_overwrite_sandboxed_string_funcs" class="anchor"></a>
             <article class="property">
-                <h3 class="public ">$overwrite_func_get_args</h3>
-                <pre class="signature">$overwrite_func_get_args : bool</pre>
+                <h3 class="public ">$overwrite_sandboxed_string_funcs</h3>
+                <pre class="signature">$overwrite_sandboxed_string_funcs : bool</pre>
                 <p><em></em></p>
                 
 
 
                                 <h4>Type</h4>
                 bool
-                &mdash; Should PHPSandbox overwrite func_get_args, func_get_arg and func_num_args?                            </article>
+                &mdash; Should PHPSandbox overwrite $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $_REQUEST, $_SERVER, $_SESSION and $GLOBALS superglobals? If so, unless alternate superglobal values have been defined they will return as empty arrays.                            </article>
         </div>
         <aside class="span4 detailsbar">
             <h1><i class="icon-arrow-down"></i></h1>
                         <dl>
                                                             </dl>
@@ -1530,11 +1540,11 @@ only has to create a PHPSandbox instance, configure its options, and run their c
                 
 
 
                                 <h4>Type</h4>
                 bool
-                &mdash; Should PHPSandbox overwrite $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $_REQUEST, $_SERVER, $_SESSION and $GLOBALS superglobals? If so, unless alternate superglobal values have been defined they will return as empty arrays.                            </article>
+                &mdash; Should PHPSandbox overwrite functions to help hide SandboxedStrings?                            </article>
         </div>
         <aside class="span4 detailsbar">
             <h1><i class="icon-arrow-down"></i></h1>
                         <dl>
                                                             </dl>
@@ -6285,10 +6295,172 @@ and the PHPSandbox instance</p>
         </aside>
     </div>
 
                                     <div class="row-fluid">
         <div class="span8 content class">
+            <a id="method__func_get_args" name="method__func_get_args" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">_func_get_args()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">_func_get_args(array <span class="argument">$arguments</span>) : array</pre>
+                <p><em>Get PHPSandbox redefined function arguments array</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>array</td>
+                                <td>$arguments</td>
+                                <td><p>Array result from func_get_args() is passed here</p>
+</td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    array
+                                            &mdash; <p>Returns the redefined arguments array</p>
+
+                                                </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method__func_get_arg" name="method__func_get_arg" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">_func_get_arg()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">_func_get_arg(array <span class="argument">$arguments</span>, int <span class="argument">$index</span>) : array</pre>
+                <p><em>Get PHPSandbox redefined function argument</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>array</td>
+                                <td>$arguments</td>
+                                <td><p>Array result from func_get_args() is passed here</p>
+</td>
+                            </tr>
+                                                    <tr>
+                                <td>int</td>
+                                <td>$index</td>
+                                <td><p>Requested func_get_arg index is passed here</p>
+</td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    array
+                                            &mdash; <p>Returns the redefined argument</p>
+
+                                                </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method__func_num_args" name="method__func_num_args" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">_func_num_args()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">_func_num_args(array <span class="argument">$arguments</span>) : int</pre>
+                <p><em>Get PHPSandbox redefined number of function arguments</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>array</td>
+                                <td>$arguments</td>
+                                <td><p>Array result from func_get_args() is passed here</p>
+</td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    int
+                                            &mdash; <p>Returns the redefined number of function arguments</p>
+
+                                                </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method__wrap" name="method__wrap" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">_wrap()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">_wrap(mixed <span class="argument">$value</span>) : mixed|\PHPSandbox\SandboxedString</pre>
+                <p><em>Wrap output value in SandboxString</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>mixed</td>
+                                <td>$value</td>
+                                <td><p>Value to wrap</p>
+</td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    mixed|<a href="../classes/PHPSandbox.SandboxedString.html">\PHPSandbox\SandboxedString</a>
+                                            &mdash; <p>Returns the wrapped value</p>
+
+                                                </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
             <a id="method__var_dump" name="method__var_dump" class="anchor"></a>
             <article class="method">
                 <h3 class="public ">_var_dump()</h3>
                 <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                 <pre class="signature" style="margin-right: 54px;">_var_dump() : array</pre>
@@ -6375,33 +6547,33 @@ and the PHPSandbox instance</p>
         </aside>
     </div>
 
                                     <div class="row-fluid">
         <div class="span8 content class">
-            <a id="method__func_get_args" name="method__func_get_args" class="anchor"></a>
+            <a id="method__intval" name="method__intval" class="anchor"></a>
             <article class="method">
-                <h3 class="public ">_func_get_args()</h3>
+                <h3 class="public ">_intval()</h3>
                 <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
-                <pre class="signature" style="margin-right: 54px;">_func_get_args(array <span class="argument">$arguments</span>) : array</pre>
-                <p><em>Get PHPSandbox redefined function arguments array</em></p>
+                <pre class="signature" style="margin-right: 54px;">_intval(mixed <span class="argument">$value</span>) : int</pre>
+                <p><em>Return integer value of SandboxedString or mixed value</em></p>
                 
 
 
                                     <h4>Parameters</h4>
                     <table class="table table-condensed table-hover">
                                                     <tr>
-                                <td>array</td>
-                                <td>$arguments</td>
-                                <td><p>Array result from func_get_args() is passed here</p>
+                                <td>mixed</td>
+                                <td>$value</td>
+                                <td><p>Value to return as integer</p>
 </td>
                             </tr>
                                             </table>
                 
                 
                                     <h4>Returns</h4>
-                    array
-                                            &mdash; <p>Returns the redefined arguments array</p>
+                    int
+                                            &mdash; <p>Returns the integer value</p>
 
                                                 </article>
         </div>
         <aside class="span4 detailsbar">
             <h1><i class="icon-arrow-down"></i></h1>
@@ -6414,39 +6586,72 @@ and the PHPSandbox instance</p>
         </aside>
     </div>
 
                                     <div class="row-fluid">
         <div class="span8 content class">
-            <a id="method__func_get_arg" name="method__func_get_arg" class="anchor"></a>
+            <a id="method__floatval" name="method__floatval" class="anchor"></a>
             <article class="method">
-                <h3 class="public ">_func_get_arg()</h3>
+                <h3 class="public ">_floatval()</h3>
                 <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
-                <pre class="signature" style="margin-right: 54px;">_func_get_arg(array <span class="argument">$arguments</span>, int <span class="argument">$index</span>) : array</pre>
-                <p><em>Get PHPSandbox redefined function argument</em></p>
+                <pre class="signature" style="margin-right: 54px;">_floatval(mixed <span class="argument">$value</span>) : float</pre>
+                <p><em>Return float value of SandboxedString or mixed value</em></p>
                 
 
 
                                     <h4>Parameters</h4>
                     <table class="table table-condensed table-hover">
                                                     <tr>
-                                <td>array</td>
-                                <td>$arguments</td>
-                                <td><p>Array result from func_get_args() is passed here</p>
+                                <td>mixed</td>
+                                <td>$value</td>
+                                <td><p>Value to return as float</p>
 </td>
                             </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    float
+                                            &mdash; <p>Returns the float value</p>
+
+                                                </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method__arrayval" name="method__arrayval" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">_arrayval()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">_arrayval(mixed <span class="argument">$value</span>) : array</pre>
+                <p><em>Return array value of SandboxedString or mixed value</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
                                                     <tr>
-                                <td>int</td>
-                                <td>$index</td>
-                                <td><p>Requested func_get_arg index is passed here</p>
+                                <td>mixed</td>
+                                <td>$value</td>
+                                <td><p>Value to return as array</p>
 </td>
                             </tr>
                                             </table>
                 
                 
                                     <h4>Returns</h4>
                     array
-                                            &mdash; <p>Returns the redefined argument</p>
+                                            &mdash; <p>Returns the array value</p>
 
                                                 </article>
         </div>
         <aside class="span4 detailsbar">
             <h1><i class="icon-arrow-down"></i></h1>
@@ -6459,33 +6664,189 @@ and the PHPSandbox instance</p>
         </aside>
     </div>
 
                                     <div class="row-fluid">
         <div class="span8 content class">
-            <a id="method__func_num_args" name="method__func_num_args" class="anchor"></a>
+            <a id="method__objectval" name="method__objectval" class="anchor"></a>
             <article class="method">
-                <h3 class="public ">_func_num_args()</h3>
+                <h3 class="public ">_objectval()</h3>
                 <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
-                <pre class="signature" style="margin-right: 54px;">_func_num_args(array <span class="argument">$arguments</span>) : int</pre>
-                <p><em>Get PHPSandbox redefined number of function arguments</em></p>
+                <pre class="signature" style="margin-right: 54px;">_objectval(mixed <span class="argument">$value</span>) : object</pre>
+                <p><em>Return object value of SandboxedString or mixed value</em></p>
                 
 
 
                                     <h4>Parameters</h4>
                     <table class="table table-condensed table-hover">
                                                     <tr>
-                                <td>array</td>
-                                <td>$arguments</td>
-                                <td><p>Array result from func_get_args() is passed here</p>
+                                <td>mixed</td>
+                                <td>$value</td>
+                                <td><p>Value to return as object</p>
 </td>
                             </tr>
                                             </table>
                 
                 
                                     <h4>Returns</h4>
-                    int
-                                            &mdash; <p>Returns the redefined number of function arguments</p>
+                    object
+                                            &mdash; <p>Returns the object value</p>
+
+                                                </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method__is_string" name="method__is_string" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">_is_string()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">_is_string(mixed <span class="argument">$value</span>) : bool</pre>
+                <p><em>Return is_string value of SandboxedString or mixed value</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>mixed</td>
+                                <td>$value</td>
+                                <td><p>Value to check if is_string</p>
+</td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    bool
+                                            &mdash; <p>Returns the is_string value</p>
+
+                                                </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method__is_object" name="method__is_object" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">_is_object()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">_is_object(mixed <span class="argument">$value</span>) : bool</pre>
+                <p><em>Return is_object value of SandboxedString or mixed value</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>mixed</td>
+                                <td>$value</td>
+                                <td><p>Value to check if is_object</p>
+</td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    bool
+                                            &mdash; <p>Returns the is_object value</p>
+
+                                                </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method__is_scalar" name="method__is_scalar" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">_is_scalar()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">_is_scalar(mixed <span class="argument">$value</span>) : bool</pre>
+                <p><em>Return is_scalar value of SandboxedString or mixed value</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>mixed</td>
+                                <td>$value</td>
+                                <td><p>Value to check if is_scalar</p>
+</td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    bool
+                                            &mdash; <p>Returns the is_scalar value</p>
+
+                                                </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method__is_callable" name="method__is_callable" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">_is_callable()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">_is_callable(mixed <span class="argument">$value</span>) : bool</pre>
+                <p><em>Return is_callable value of SandboxedString or mixed value</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>mixed</td>
+                                <td>$value</td>
+                                <td><p>Value to check if is_callable</p>
+</td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    bool
+                                            &mdash; <p>Returns the is_callable value</p>
 
                                                 </article>
         </div>
         <aside class="span4 detailsbar">
             <h1><i class="icon-arrow-down"></i></h1>
@@ -18936,11 +19297,11 @@ become compromised!</p>
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/classes/PHPSandbox.SandboxWhitelistVisitor.html b/docs/classes/PHPSandbox.SandboxWhitelistVisitor.html
index b43cf6f..f8aff8b 100644
--- a/docs/classes/PHPSandbox.SandboxWhitelistVisitor.html
+++ b/docs/classes/PHPSandbox.SandboxWhitelistVisitor.html
@@ -137,23 +137,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-174531007"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-872821338"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-174531007" class="accordion-body collapse in">
+            <div id="namespace-872821338" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1263837536"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-2118974906"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-1263837536" class="accordion-body collapse ">
+            <div id="namespace-2118974906" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -453,11 +453,11 @@ autmatically whitelist sandboxed code functions, classes, etc. if the appropriat
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/classes/PHPSandbox.SandboxedString.html b/docs/classes/PHPSandbox.SandboxedString.html
index 5e67dbf..bd18f0e 100644
--- a/docs/classes/PHPSandbox.SandboxedString.html
+++ b/docs/classes/PHPSandbox.SandboxedString.html
@@ -137,23 +137,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-298168079"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2041490650"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-298168079" class="accordion-body collapse in">
+            <div id="namespace-2041490650" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-171292534"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-2075822163"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-171292534" class="accordion-body collapse ">
+            <div id="namespace-2075822163" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -208,10 +208,15 @@
                         <section class="row-fluid public">
                             <section class="span4">
                                                                     <a href="../classes/PHPSandbox.SandboxedString.html#method___construct" class="">__construct()</a><br />
                                                                     <a href="../classes/PHPSandbox.SandboxedString.html#method___toString" class="">__toString()</a><br />
                                                                     <a href="../classes/PHPSandbox.SandboxedString.html#method___invoke" class="">__invoke()</a><br />
+                                                                    <a href="../classes/PHPSandbox.SandboxedString.html#method_offsetSet" class="">offsetSet()</a><br />
+                                                                    <a href="../classes/PHPSandbox.SandboxedString.html#method_offsetGet" class="">offsetGet()</a><br />
+                                                                    <a href="../classes/PHPSandbox.SandboxedString.html#method_offsetExists" class="">offsetExists()</a><br />
+                                                                    <a href="../classes/PHPSandbox.SandboxedString.html#method_offsetUnset" class="">offsetUnset()</a><br />
+                                                                    <a href="../classes/PHPSandbox.SandboxedString.html#method_getIterator" class="">getIterator()</a><br />
                                                             </section>
                             <section class="span4">
                                                                     <em>No public properties found</em>
                                                             </section>
                             <section class="span4">
@@ -454,10 +459,194 @@
                                     <tr><td colspan="2"><em>None found</em></td></tr>
                             </table>
         </aside>
     </div>
 
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_offsetSet" name="method_offsetSet" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">offsetSet()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">offsetSet(mixed <span class="argument">$offset</span>, mixed <span class="argument">$value</span>)</pre>
+                <p><em>Set string value at specified offset</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>mixed</td>
+                                <td>$offset</td>
+                                <td><p>Offset to set value</p>
+</td>
+                            </tr>
+                                                    <tr>
+                                <td>mixed</td>
+                                <td>$value</td>
+                                <td><p>Value to set</p>
+</td>
+                            </tr>
+                                            </table>
+                
+                
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_offsetGet" name="method_offsetGet" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">offsetGet()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">offsetGet(mixed <span class="argument">$offset</span>) : string</pre>
+                <p><em>Get string value at specified offset</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>mixed</td>
+                                <td>$offset</td>
+                                <td><p>Offset to get value</p>
+</td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    string
+                                            &mdash; <p>Value to return</p>
+
+                                                </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_offsetExists" name="method_offsetExists" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">offsetExists()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">offsetExists(mixed <span class="argument">$offset</span>) : bool</pre>
+                <p><em>Check if specified offset exists in string value</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>mixed</td>
+                                <td>$offset</td>
+                                <td><p>Offset to check</p>
+</td>
+                            </tr>
+                                            </table>
+                
+                
+                                    <h4>Returns</h4>
+                    bool
+                                            &mdash; <p>Return true if offset exists, false otherwise</p>
+
+                                                </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_offsetUnset" name="method_offsetUnset" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">offsetUnset()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">offsetUnset(mixed <span class="argument">$offset</span>)</pre>
+                <p><em>Unset string value at specified offset</em></p>
+                
+
+
+                                    <h4>Parameters</h4>
+                    <table class="table table-condensed table-hover">
+                                                    <tr>
+                                <td>mixed</td>
+                                <td>$offset</td>
+                                <td><p>Offset to unset</p>
+</td>
+                            </tr>
+                                            </table>
+                
+                
+                            </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
+                                    <div class="row-fluid">
+        <div class="span8 content class">
+            <a id="method_getIterator" name="method_getIterator" class="anchor"></a>
+            <article class="method">
+                <h3 class="public ">getIterator()</h3>
+                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
+                <pre class="signature" style="margin-right: 54px;">getIterator() : \ArrayIterator</pre>
+                <p><em>Return iterator for string value</em></p>
+                
+
+
+                
+                
+                                    <h4>Returns</h4>
+                    \ArrayIterator
+                                            &mdash; <p>Array iterator to return</p>
+
+                                                </article>
+        </div>
+        <aside class="span4 detailsbar">
+            <h1><i class="icon-arrow-down"></i></h1>
+                                                            <dl>
+                                                                            </dl>
+            <h2>Tags</h2>
+            <table class="table table-condensed">
+                                    <tr><td colspan="2"><em>None found</em></td></tr>
+                            </table>
+        </aside>
+    </div>
+
                                                                     </div>
     </section>
 
     <div id="source-view" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="source-view-label" aria-hidden="true">
         <div class="modal-header">
@@ -504,11 +693,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/classes/PHPSandbox.ValidatorVisitor.html b/docs/classes/PHPSandbox.ValidatorVisitor.html
index b3dd5af..288d0a4 100644
--- a/docs/classes/PHPSandbox.ValidatorVisitor.html
+++ b/docs/classes/PHPSandbox.ValidatorVisitor.html
@@ -137,23 +137,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-190716146"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-761076047"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-190716146" class="accordion-body collapse in">
+            <div id="namespace-761076047" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1067596443"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1291512294"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-1067596443" class="accordion-body collapse ">
+            <div id="namespace-1291512294" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -554,16 +554,10 @@ configuration for errors, and throws exceptions if they are found</p>
                                 <td><p>The sandboxed $node to test</p>
 </td>
                             </tr>
                                             </table>
                 
-                                    <h4>Throws</h4>
-                    <dl>
-                                                    <dt>\PHPSandbox\Error</dt>
-                            <dd><p>Throws exception if $node attempts to cast when $allow_casting is false in the PHPSandbox configuration</p>
-</dd>
-                                                                    </dl>
                 
                                     <h4>Returns</h4>
                     string|null
                                             &mdash; <p>Return string name of node, or null if it is not a primitive</p>
 
@@ -628,11 +622,11 @@ configuration for errors, and throws exceptions if they are found</p>
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/classes/PHPSandbox.WhitelistVisitor.html b/docs/classes/PHPSandbox.WhitelistVisitor.html
index d96d640..1d73cd6 100644
--- a/docs/classes/PHPSandbox.WhitelistVisitor.html
+++ b/docs/classes/PHPSandbox.WhitelistVisitor.html
@@ -137,23 +137,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1971830681"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2090806726"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-1971830681" class="accordion-body collapse in">
+            <div id="namespace-2090806726" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-868130616"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-185668004"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-868130616" class="accordion-body collapse ">
+            <div id="namespace-185668004" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -457,11 +457,11 @@ autmatically whitelist trusted code functions, classes, etc. if the appropriate
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/files/Error.php.html b/docs/files/Error.php.html
index 3e8442d..ec5f600 100644
--- a/docs/files/Error.php.html
+++ b/docs/files/Error.php.html
@@ -137,23 +137,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1697921261"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-174432776"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-1697921261" class="accordion-body collapse in">
+            <div id="namespace-174432776" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-130381843"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-7998099"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-130381843" class="accordion-body collapse ">
+            <div id="namespace-7998099" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -267,11 +267,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/files/Error.php.txt b/docs/files/Error.php.txt
index e581ce7..3d41831 100644
--- a/docs/files/Error.php.txt
+++ b/docs/files/Error.php.txt
@@ -9,11 +9,11 @@
      * This class extends Exception to allow for catching PHPSandbox-specific exceptions.
      *
      * @namespace PHPSandbox
      *
      * @author  Elijah Horton <fieryprophet@yahoo.com>
-     * @version 1.3.2
+     * @version 1.3.3
      */
     class Error extends \Exception {
         /* START ERROR CODES */
         /* MISC ERRORS                      (1-99)    */
         const PARSER_ERROR              =       1;
diff --git a/docs/files/PHPSandbox.php.html b/docs/files/PHPSandbox.php.html
index 270462a..fdb1e46 100644
--- a/docs/files/PHPSandbox.php.html
+++ b/docs/files/PHPSandbox.php.html
@@ -137,23 +137,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-555703967"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-101492745"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-555703967" class="accordion-body collapse in">
+            <div id="namespace-101492745" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-2138167363"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-288228325"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-2138167363" class="accordion-body collapse ">
+            <div id="namespace-288228325" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -267,11 +267,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/files/PHPSandbox.php.txt b/docs/files/PHPSandbox.php.txt
index 4e38633..7724be3 100644
--- a/docs/files/PHPSandbox.php.txt
+++ b/docs/files/PHPSandbox.php.txt
@@ -12,11 +12,11 @@
      * only has to create a PHPSandbox instance, configure its options, and run their code
      *
      * @namespace PHPSandbox
      *
      * @author  Elijah Horton <fieryprophet@yahoo.com>
-     * @version 1.3.2
+     * @version 1.3.3
      */
     class PHPSandbox {
         /**
          * @const    string      The prefix given to the obfuscated sandbox key passed to the generated code
          */
@@ -85,26 +85,33 @@
             'get_defined_constants',
             'get_declared_classes',
             'get_declared_interfaces',
             'get_declared_traits'
         );
-        /**
-         * @var    array          A static array of var_dump, print_r and var_export for redefining those functions
-         */
-        public static $var_funcs = array(
-            'var_dump',
-            'print_r',
-            'var_export'
-        );
         /**
          * @var    array          A static array of func_get_args, func_get_arg, and func_num_args used for redefining those functions
          */
         public static $arg_funcs = array(
             'func_get_args',
             'func_get_arg',
             'func_num_args'
         );
+        /**
+         * @var    array          A static array of var_dump, print_r and var_export, intval, floatval, is_string, is_object,
+         *                          is_scalar and is_callable for redefining those functions
+         */
+        public static $sandboxed_string_funcs = array(
+            'var_dump',
+            'print_r',
+            'var_export',
+            'intval',
+            'floatval',
+            'is_string',
+            'is_object',
+            'is_scalar',
+            'is_callable'
+        );
         /**
          * @var    string       The randomly generated name of the PHPSandbox variable passed to the generated closure
          */
         public $name = '';
         /**
@@ -251,24 +258,24 @@
         /**
          * @var    bool       Should PHPSandbox overwrite get_defined_functions, get_defined_vars, get_defined_constants, get_declared_classes, get_declared_interfaces and get_declared_traits?
          * @default true
          */
         public $overwrite_defined_funcs     = true;
-        /**
-         * @var    bool       Should PHPSandbox overwrite var_dump, print_r, and var_export?
-         * @default true
-         */
-        public $overwrite_var_funcs         = true;
         /**
          * @var    bool       Should PHPSandbox overwrite func_get_args, func_get_arg and func_num_args?
          * @default true
          */
         public $overwrite_func_get_args     = true;
         /**
          * @var    bool       Should PHPSandbox overwrite $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $_REQUEST, $_SERVER, $_SESSION and $GLOBALS superglobals? If so, unless alternate superglobal values have been defined they will return as empty arrays.
          * @default true
          */
+        public $overwrite_sandboxed_string_funcs         = true;
+        /**
+         * @var    bool       Should PHPSandbox overwrite functions to help hide SandboxedStrings?
+         * @default true
+         */
         public $overwrite_superglobals      = true;
         /**
          * @var    bool       Should PHPSandbox allow sandboxed code to declare functions?
          * @default false
          */
@@ -1918,10 +1925,62 @@
                     $traits[strtolower($value)] = $value;
                 }
             }
             return array_values($traits);
         }
+        /** Get PHPSandbox redefined function arguments array
+         *
+         * @param   array           $arguments      Array result from func_get_args() is passed here
+         *
+         * @return  array           Returns the redefined arguments array
+         */
+        public function _func_get_args(array $arguments = array()){
+            foreach($arguments as $index => $value){
+                if($value instanceof self){
+                    unset($arguments[$index]); //hide PHPSandbox variable
+                }
+            }
+            return $arguments;
+        }
+        /** Get PHPSandbox redefined function argument
+         *
+         * @param   array           $arguments      Array result from func_get_args() is passed here
+         *
+         * @param   int             $index          Requested func_get_arg index is passed here
+         *
+         * @return  array           Returns the redefined argument
+         */
+        public function _func_get_arg(array $arguments = array(), $index = 0){
+            if($arguments[$index] instanceof self){
+                $index++;   //get next argument instead
+            }
+            return isset($arguments[$index]) && !($arguments[$index] instanceof self) ? $arguments[$index] : null;
+        }
+        /** Get PHPSandbox redefined number of function arguments
+         *
+         * @param   array           $arguments      Array result from func_get_args() is passed here
+         *
+         * @return  int             Returns the redefined number of function arguments
+         */
+        public function _func_num_args(array $arguments = array()){
+            $count = count($arguments);
+            foreach($arguments as $argument){
+                if($argument instanceof self){
+                    $count--;
+                }
+            }
+            return $count > 0 ? $count : 0;
+        }
+        /** Wrap output value in SandboxString
+         *
+         * @param   mixed                   $value      Value to wrap
+         *
+         * @return  mixed|SandboxedString   Returns the wrapped value
+         */
+        public function _wrap($value){
+            return is_string($value) ? new SandboxedString($value, $this) : $value;
+        }
         /** Get PHPSandbox redefined var_dump
          *
          * @return  array           Returns the redefined var_dump
          */
         public function _var_dump(){
@@ -1963,52 +2022,90 @@
                     $arguments[$index] = strval($value);
                 }
             }
             return call_user_func_array('var_export', $arguments);
         }
-        /** Get PHPSandbox redefined function arguments array
+        /** Return integer value of SandboxedString or mixed value
          *
-         * @param   array           $arguments      Array result from func_get_args() is passed here
+         * @param   mixed           $value      Value to return as integer
          *
-         * @return  array           Returns the redefined arguments array
+         * @return  int             Returns the integer value
          */
-        public function _func_get_args(array $arguments = array()){
-            foreach($arguments as $index => $value){
-                if($value instanceof self){
-                    unset($arguments[$index]); //hide PHPSandbox variable
-                }
-            }
-            return $arguments;
+        public function _intval($value){
+            return intval($value instanceof SandboxedString ? strval($value): $value);
         }
-        /** Get PHPSandbox redefined function argument
+        /** Return float value of SandboxedString or mixed value
          *
-         * @param   array           $arguments      Array result from func_get_args() is passed here
+         * @param   mixed           $value      Value to return as float
          *
-         * @param   int             $index          Requested func_get_arg index is passed here
+         * @return  float           Returns the float value
+         */
+        public function _floatval($value){
+            return floatval($value instanceof SandboxedString ? strval($value): $value);
+        }
+        /** Return array value of SandboxedString or mixed value
          *
-         * @return  array           Returns the redefined argument
+         * @param   mixed           $value      Value to return as array
+         *
+         * @return  array           Returns the array value
          */
-        public function _func_get_arg(array $arguments = array(), $index = 0){
-            if($arguments[$index] instanceof self){
-                $index++;   //get next argument instead
+        public function _arrayval($value){
+            if($value instanceof SandboxedString){
+                return (array)strval($value);
             }
-            return isset($arguments[$index]) && !($arguments[$index] instanceof self) ? $arguments[$index] : null;
+            return is_array($value) ? $value : (array)$value;
         }
-        /** Get PHPSandbox redefined number of function arguments
+        /** Return object value of SandboxedString or mixed value
          *
-         * @param   array           $arguments      Array result from func_get_args() is passed here
+         * @param   mixed           $value      Value to return as object
          *
-         * @return  int             Returns the redefined number of function arguments
+         * @return  object          Returns the object value
          */
-        public function _func_num_args(array $arguments = array()){
-            $count = count($arguments);
-            foreach($arguments as $argument){
-                if($argument instanceof self){
-                    $count--;
-                }
+        public function _objectval($value){
+            if($value instanceof SandboxedString){
+                return (object)strval($value);
             }
-            return $count > 0 ? $count : 0;
+            return is_object($value) ? $value : (object)$value;
+        }
+        /** Return is_string value of SandboxedString or mixed value
+         *
+         * @param   mixed           $value      Value to check if is_string
+         *
+         * @return  bool            Returns the is_string value
+         */
+        public function _is_string($value){
+            return ($value instanceof SandboxedString) ? true : is_string($value);
+        }
+        /** Return is_object value of SandboxedString or mixed value
+         *
+         * @param   mixed           $value      Value to check if is_object
+         *
+         * @return  bool            Returns the is_object value
+         */
+        public function _is_object($value){
+            return ($value instanceof SandboxedString) ? false : is_object($value);
+        }
+        /** Return is_scalar value of SandboxedString or mixed value
+         *
+         * @param   mixed           $value      Value to check if is_scalar
+         *
+         * @return  bool            Returns the is_scalar value
+         */
+        public function _is_scalar($value){
+            return ($value instanceof SandboxedString) ? true : is_scalar($value);
+        }
+        /** Return is_callable value of SandboxedString or mixed value
+         *
+         * @param   mixed           $value      Value to check if is_callable
+         *
+         * @return  bool            Returns the is_callable value
+         */
+        public function _is_callable($value){
+            if($value instanceof SandboxedString){
+                $value = strval($value);
+            }
+            return is_callable($value);
         }
         /** Get PHPSandbox redefined function. This is an internal PHPSandbox function but requires public access to work.
          *
          * @throws  Error           Will throw exception if invalid function requested
          *
@@ -5718,10 +5815,12 @@
             if($name instanceof \Closure){
                 if(!$this->allow_closures){
                     $this->error("Sandboxed code attempted to call closure!", Error::CLOSURE_ERROR);
                 }
                 return true;
+            } else if($name instanceof SandboxedString){
+                $name = strval($name);
             }
             if(!$name || !is_string($name)){
                 $this->error("Sandboxed code attempted to call unnamed function!", Error::VALID_FUNC_ERROR, null, '');
             }
             $name = $this->normalize_func($name);
@@ -5749,10 +5848,13 @@
          *
          * @return  bool     Returns true if variable is valid
          */
         public function check_var($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed variable!", Error::VALID_VAR_ERROR, null, '');
             }
             if(is_callable($this->validation['variable'])){
                 return call_user_func_array($this->validation['variable'], array($name, $this));
@@ -5778,10 +5880,13 @@
          *
          * @return  bool     Returns true if global is valid
          */
         public function check_global($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed global!", Error::VALID_GLOBAL_ERROR, null, '');
             }
             if(is_callable($this->validation['global'])){
                 return call_user_func_array($this->validation['global'], array($name, $this));
@@ -5805,10 +5910,13 @@
          *
          * @return  bool     Returns true if superglobal is valid
          */
         public function check_superglobal($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed superglobal!", Error::VALID_SUPERGLOBAL_ERROR, null, '');
             }
             $name = $this->normalize_superglobal($name);
             if(is_callable($this->validation['superglobal'])){
@@ -5835,10 +5943,13 @@
          *
          * @return  bool     Returns true if constant is valid
          */
         public function check_const($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed constant!", Error::VALID_CONST_ERROR, null, '');
             }
             if(strtolower($name) == 'true' || strtolower($name) == 'false'){
                 return $this->check_primitive('bool');
@@ -5870,10 +5981,13 @@
          *
          * @return  bool     Returns true if magic constant is valid
          */
         public function check_magic_const($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed magic constant!", Error::VALID_MAGIC_CONST_ERROR, null, '');
             }
             $name = $this->normalize_magic_const($name);
             if(is_callable($this->validation['magic_constant'])){
@@ -5900,10 +6014,13 @@
          *
          * @return  bool     Returns true if namespace is valid
          */
         public function check_namespace($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed namespace!", Error::VALID_NAMESPACE_ERROR, null, '');
             }
             $name = $this->normalize_namespace($name);
             if(is_callable($this->validation['namespace'])){
@@ -5930,10 +6047,13 @@
          *
          * @return  bool     Returns true if alias is valid
          */
         public function check_alias($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed alias!", Error::VALID_ALIAS_ERROR, null, '');
             }
             $name = $this->normalize_alias($name);
             if(is_callable($this->validation['alias'])){
@@ -5971,10 +6091,13 @@
          *
          * @return  bool     Returns true if class is valid
          */
         public function check_class($name, $extends = false){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             $action = $extends ? 'extend' : 'call';
             if(!$name){
                 $this->error("Sandboxed code attempted to $action unnamed class!", Error::VALID_CLASS_ERROR, null, '');
             }
             $name = $this->normalize_class($name);
@@ -6005,10 +6128,13 @@
          *
          * @return  bool     Returns true if interface is valid
          */
         public function check_interface($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed interface!", Error::VALID_INTERFACE_ERROR, null, '');
             }
             $name = $this->normalize_interface($name);
             if(is_callable($this->validation['interface'])){
@@ -6035,10 +6161,13 @@
          *
          * @return  bool     Returns true if trait is valid
          */
         public function check_trait($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed trait!", Error::VALID_TRAIT_ERROR, null, '');
             }
             $name = $this->normalize_trait($name);
             if(is_callable($this->validation['trait'])){
@@ -6065,10 +6194,13 @@
          *
          * @return  bool     Returns true if keyword is valid
          */
         public function check_keyword($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed keyword!", Error::VALID_KEYWORD_ERROR, null, '');
             }
             $name = $this->normalize_keyword($name);
             if(is_callable($this->validation['keyword'])){
@@ -6091,10 +6223,13 @@
          *
          * @return  bool     Returns true if operator is valid
          */
         public function check_operator($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed operator!", Error::VALID_OPERATOR_ERROR, null, '');
             }
             $name = $this->normalize_operator($name);
             if(is_callable($this->validation['operator'])){
@@ -6117,10 +6252,13 @@
          *
          * @return  bool     Returns true if primitive is valid
          */
         public function check_primitive($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed primitive!", Error::VALID_PRIMITIVE_ERROR, null, '');
             }
             $name = $this->normalize_primitive($name);
             if(is_callable($this->validation['primitive'])){
@@ -6143,10 +6281,13 @@
          *
          * @return  bool     Returns true if type is valid
          */
         public function check_type($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed type!", Error::VALID_TYPE_ERROR, null, '');
             }
             $name = $this->normalize_type($name);
             if(is_callable($this->validation['type'])){
@@ -6482,11 +6623,11 @@
                 $this->prepare_vars() .
                 $this->prepended_code .
                 $this->prepared_code .
                 $this->appended_code .
                 "\r\n" . '};' .
-                "\r\n" . 'if( PHP_MAJOR_VERSION >= 5 && PHP_MINOR_VERSION > 3){ $closure = $closure->bindTo(null); }' .
+                "\r\n" . 'if(method_exists($closure, "bindTo")){ $closure = $closure->bindTo(null); }' .
                 "\r\n" . 'return $closure();';
 
             usleep(1); //guarantee at least some time passes
             $this->prepare_time = (microtime(true) - $this->prepare_time);
             return $this->generated_code;
diff --git a/docs/files/SandboxWhitelistVisitor.php.html b/docs/files/SandboxWhitelistVisitor.php.html
index fb4a14a..78af816 100644
--- a/docs/files/SandboxWhitelistVisitor.php.html
+++ b/docs/files/SandboxWhitelistVisitor.php.html
@@ -137,23 +137,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-891059786"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2011979904"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-891059786" class="accordion-body collapse in">
+            <div id="namespace-2011979904" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-337296115"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1143894290"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-337296115" class="accordion-body collapse ">
+            <div id="namespace-1143894290" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -267,11 +267,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/files/SandboxWhitelistVisitor.php.txt b/docs/files/SandboxWhitelistVisitor.php.txt
index c78dec2..ed83611 100644
--- a/docs/files/SandboxWhitelistVisitor.php.txt
+++ b/docs/files/SandboxWhitelistVisitor.php.txt
@@ -11,11 +11,11 @@
      * autmatically whitelist sandboxed code functions, classes, etc. if the appropriate settings are configured.
      *
      * @namespace PHPSandbox
      *
      * @author  Elijah Horton <fieryprophet@yahoo.com>
-     * @version 1.3.2
+     * @version 1.3.3
      */
     class SandboxWhitelistVisitor extends \PHPParser_NodeVisitorAbstract {
         /** The PHPSandbox instance to check against
          * @var PHPSandbox
          */
diff --git a/docs/files/SandboxedString.php.html b/docs/files/SandboxedString.php.html
index 603aacb..9bc9184 100644
--- a/docs/files/SandboxedString.php.html
+++ b/docs/files/SandboxedString.php.html
@@ -137,23 +137,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1040308460"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1701606012"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-1040308460" class="accordion-body collapse in">
+            <div id="namespace-1701606012" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-418048951"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1646168305"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-418048951" class="accordion-body collapse ">
+            <div id="namespace-1646168305" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -267,11 +267,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/files/SandboxedString.php.txt b/docs/files/SandboxedString.php.txt
index be95764..fa82364 100644
--- a/docs/files/SandboxedString.php.txt
+++ b/docs/files/SandboxedString.php.txt
@@ -9,24 +9,24 @@
      * This class wraps sandboxed strings to intercept and check callable invocations
      *
      * @namespace PHPSandbox
      *
      * @author  Elijah Horton <fieryprophet@yahoo.com>
-     * @version 1.3.2
+     * @version 1.3.3
      */
-    class SandboxedString {
+    class SandboxedString implements \ArrayAccess, \IteratorAggregate {
         /**
          * @var string
          */
         private $value;
         /**
          * @var PHPSandbox
          */
         private $sandbox;
         /** Constructs the SandboxedString
-         * @param   string      $value      Original string value
-         * @param   PHPSandbox  $sandbox    The current sandbox instance to test against
+         * @param   string      $value          Original string value
+         * @param   PHPSandbox  $sandbox        The current sandbox instance to test against
          */
         public function __construct($value, PHPSandbox $sandbox){
             $this->value = $value;
             $this->sandbox = $sandbox;
         }
@@ -41,14 +41,53 @@
          */
         public function __invoke(){
             if($this->sandbox->check_func($this->value)){
                 $name = strtolower($this->value);
                 if((in_array($name, PHPSandbox::$defined_funcs) && $this->sandbox->overwrite_defined_funcs)
-                    || (in_array($name, PHPSandbox::$var_funcs) && $this->sandbox->overwrite_var_funcs)
+                    || (in_array($name, PHPSandbox::$sandboxed_string_funcs) && $this->sandbox->overwrite_sandboxed_string_funcs)
                     || (in_array($name, PHPSandbox::$arg_funcs) && $this->sandbox->overwrite_func_get_args)){
                     return call_user_func_array(array($this->sandbox, '_' . $this->value), func_get_args());
                 }
                 return call_user_func_array($name, func_get_args());
             }
-            return null;
+            return '';
+        }
+        /** Set string value at specified offset
+         * @param   mixed       $offset            Offset to set value
+         * @param   mixed       $value             Value to set
+         */
+        public function offsetSet($offset, $value){
+            if($offset === null){
+                $this->value .= $value;
+            } else {
+                $this->value[$offset] = $value;
+            }
+        }
+        /** Get string value at specified offset
+         * @param   mixed       $offset            Offset to get value
+         *
+         * @return  string      Value to return
+         */
+        public function offsetGet($offset){
+            return $this->value[$offset];
+        }
+        /** Check if specified offset exists in string value
+         * @param   mixed       $offset            Offset to check
+         *
+         * @return  bool        Return true if offset exists, false otherwise
+         */
+        public function offsetExists($offset){
+            return isset($this->value[$offset]);
+        }
+        /** Unset string value at specified offset
+         * @param   mixed       $offset            Offset to unset
+         */
+        public function offsetUnset($offset){
+            unset($this->value[$offset]);
+        }
+        /** Return iterator for string value
+         * @return  \ArrayIterator      Array iterator to return
+         */
+        public function getIterator(){
+            return new \ArrayIterator(str_split(strval($this->value)));
         }
     }
diff --git a/docs/files/ValidatorVisitor.php.html b/docs/files/ValidatorVisitor.php.html
index 585b16f..c90f698 100644
--- a/docs/files/ValidatorVisitor.php.html
+++ b/docs/files/ValidatorVisitor.php.html
@@ -137,23 +137,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-907988671"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-999918227"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-907988671" class="accordion-body collapse in">
+            <div id="namespace-999918227" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-194642397"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-226640883"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-194642397" class="accordion-body collapse ">
+            <div id="namespace-226640883" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -267,11 +267,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/files/ValidatorVisitor.php.txt b/docs/files/ValidatorVisitor.php.txt
index d8980c6..5ebef21 100644
--- a/docs/files/ValidatorVisitor.php.txt
+++ b/docs/files/ValidatorVisitor.php.txt
@@ -11,11 +11,11 @@
      * configuration for errors, and throws exceptions if they are found
      *
      * @namespace PHPSandbox
      *
      * @author  Elijah Horton <fieryprophet@yahoo.com>
-     * @version 1.3.2
+     * @version 1.3.3
      */
     class ValidatorVisitor extends \PHPParser_NodeVisitorAbstract {
         /** The PHPSandbox instance to check against
          * @var PHPSandbox
          */
@@ -40,14 +40,25 @@
         public function leaveNode(\PHPParser_Node $node){
             if($node instanceof \PHPParser_Node_Stmt_InlineHTML){
                 if(!$this->sandbox->allow_escaping){
                     $this->sandbox->error("Sandboxed code attempted to escape to HTML!", Error::ESCAPE_ERROR, $node);
                 }
+            } else if($node instanceof \PHPParser_Node_Expr_Cast_String){
+                return new \PHPParser_Node_Expr_New(new \PHPParser_Node_Name_FullyQualified(array('PHPSandbox\\SandboxedString')), array(new \PHPParser_Node_Arg($node->expr), new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))))));
             } else if($node instanceof \PHPParser_Node_Expr_Cast){
                 if(!$this->sandbox->allow_casting){
                     $this->sandbox->error("Sandboxed code attempted to cast!", Error::CAST_ERROR, $node);
                 }
+                if($node instanceof \PHPParser_Node_Expr_Cast_Int){
+                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_intval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
+                } else if($node instanceof \PHPParser_Node_Expr_Cast_Double){
+                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_floatval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
+                } else if($node instanceof \PHPParser_Node_Expr_Cast_Array){
+                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_arrayval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
+                } else if($node instanceof \PHPParser_Node_Expr_Cast_Object){
+                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_objectval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
+                }
             } else if($node instanceof \PHPParser_Node_Expr_FuncCall){
                 if($node->name instanceof \PHPParser_Node_Name){
                     $name = strtolower($node->name->toString());
                     if(!$this->sandbox->check_func($name)){
                         $this->sandbox->error("Function failed custom validation!", Error::VALID_FUNC_ERROR, $node);
@@ -58,11 +69,11 @@
                         return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), 'call_func', $args, $node->getAttributes());
                     }
                     if($this->sandbox->overwrite_defined_funcs && in_array($name, PHPSandbox::$defined_funcs)){
                         return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_' . $name, array(new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_FuncCall(new \PHPParser_Node_Name(array($name))))), $node->getAttributes());
                     }
-                    if($this->sandbox->overwrite_var_funcs && in_array($name, PHPSandbox::$var_funcs)){
+                    if($this->sandbox->overwrite_sandboxed_string_funcs && in_array($name, PHPSandbox::$sandboxed_string_funcs)){
                         $args = $node->args;
                         return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_' . $name, $args, $node->getAttributes());
                     }
                     if($this->sandbox->overwrite_func_get_args && in_array($name, PHPSandbox::$arg_funcs)){
                         if($name == 'func_get_arg'){
@@ -72,10 +83,11 @@
                             }
                             return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_' . $name, array(new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_FuncCall(new \PHPParser_Node_Name(array('func_get_args')))), $index), $node->getAttributes());
                         }
                         return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_' . $name, array(new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_FuncCall(new \PHPParser_Node_Name(array('func_get_args'))))), $node->getAttributes());
                     }
+                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_wrap', array(new \PHPParser_Node_Arg($node)), $node->getAttributes());
                 } else {
                     return new \PHPParser_Node_Expr_Ternary(
                         new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), 'check_func', array(new \PHPParser_Node_Arg($node->name)), $node->getAttributes()),
                         $node,
                         new \PHPParser_Node_Expr_ConstFetch(new \PHPParser_Node_Name('null'))
@@ -369,10 +381,15 @@
                 }
             } else if($name = $this->is_operator($node)){
                 if(!$this->sandbox->check_operator($name)){
                     $this->sandbox->error("Operator failed custom validation!", Error::VALID_OPERATOR_ERROR, $node, $name);
                 }
+                if($node instanceof \PHPParser_Node_Expr_Concat){
+                    return new \PHPParser_Node_Expr_New(new \PHPParser_Node_Name_FullyQualified(array('PHPSandbox\\SandboxedString')), array(new \PHPParser_Node_Arg($node), new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))))));
+                } else if($node instanceof \PHPParser_Node_Expr_AssignConcat){
+                    return new \PHPParser_Node_Expr_Assign($node->var, new \PHPParser_Node_Expr_New(new \PHPParser_Node_Name_FullyQualified(array('PHPSandbox\\SandboxedString')), array(new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_Concat($node->var, $node->expr)), new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name)))))));
+                }
             } else if($name = $this->is_primitive($node)){
                 if(!$this->sandbox->check_primitive($name)){
                     $this->sandbox->error("Primitive failed custom validation!", Error::VALID_PRIMITIVE_ERROR, $node, $name);
                 }
                 if($node instanceof \PHPParser_Node_Scalar_String){
@@ -578,28 +595,13 @@
         }
         /** Test the current PHPParser_Node node to see if it is a primitive, and return the name if it is and null if it is not
          *
          * @param   \PHPParser_Node   $node          The sandboxed $node to test
          *
-         * @throws  Error             Throws exception if $node attempts to cast when $allow_casting is false in the PHPSandbox configuration
-         *
          * @return  string|null       Return string name of node, or null if it is not a primitive
          */
         protected function is_primitive(\PHPParser_Node $node){
-            switch($node->getType()){
-                case 'Expr_Cast_Array':
-                case 'Expr_Cast_Bool':
-                case 'Expr_Cast_Double':
-                case 'Expr_Cast_Int':
-                case 'Expr_Cast_String':
-                case 'Expr_Cast_Object':
-                case 'Expr_Cast_Unset':
-                    if(!$this->sandbox->allow_casting){
-                        $this->sandbox->error("Sandboxed code attempted to cast!", Error::CAST_ERROR, $node);
-                    }
-                    break;
-            }
             switch($node->getType()){
                 case 'Expr_Cast_Array':
                 case 'Expr_Array':
                     return 'array';
                 case 'Expr_Cast_Bool': //booleans are treated as constants otherwise. . .
diff --git a/docs/files/WhitelistVisitor.php.html b/docs/files/WhitelistVisitor.php.html
index 29ac504..8024755 100644
--- a/docs/files/WhitelistVisitor.php.html
+++ b/docs/files/WhitelistVisitor.php.html
@@ -137,23 +137,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-854772276"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1453035608"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-854772276" class="accordion-body collapse in">
+            <div id="namespace-1453035608" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1662890078"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-91137763"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-1662890078" class="accordion-body collapse ">
+            <div id="namespace-91137763" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -267,11 +267,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/files/WhitelistVisitor.php.txt b/docs/files/WhitelistVisitor.php.txt
index e047d05..19776cd 100644
--- a/docs/files/WhitelistVisitor.php.txt
+++ b/docs/files/WhitelistVisitor.php.txt
@@ -11,11 +11,11 @@
      * autmatically whitelist trusted code functions, classes, etc. if the appropriate settings are configured.
      *
      * @namespace PHPSandbox
      *
      * @author  Elijah Horton <fieryprophet@yahoo.com>
-     * @version 1.3.2
+     * @version 1.3.3
      */
     class WhitelistVisitor extends \PHPParser_NodeVisitorAbstract {
         /** The PHPSandbox instance to check against
          * @var PHPSandbox
          */
diff --git a/docs/graphs/class.html b/docs/graphs/class.html
index 799559c..ee1f30a 100644
--- a/docs/graphs/class.html
+++ b/docs/graphs/class.html
@@ -154,11 +154,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/index.html b/docs/index.html
index 1d8f94d..3aeb0bc 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -89,23 +89,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1624839564"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-751769504"></a>
                                 <a href="namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-1624839564" class="accordion-body collapse in">
+            <div id="namespace-751769504" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1810365709"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1827995365"></a>
                                 <a href="namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-1810365709" class="accordion-body collapse ">
+            <div id="namespace-1827995365" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="classes/PHPSandbox.Error.html">Error</a></li>
@@ -200,11 +200,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/namespaces/PHPSandbox.html b/docs/namespaces/PHPSandbox.html
index a876a7b..ab1a0bb 100644
--- a/docs/namespaces/PHPSandbox.html
+++ b/docs/namespaces/PHPSandbox.html
@@ -89,23 +89,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-25397207"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2043401959"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-25397207" class="accordion-body collapse in">
+            <div id="namespace-2043401959" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-134930522"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-158188391"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-134930522" class="accordion-body collapse ">
+            <div id="namespace-158188391" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -223,11 +223,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/namespaces/default.html b/docs/namespaces/default.html
index 195056b..2df05a0 100644
--- a/docs/namespaces/default.html
+++ b/docs/namespaces/default.html
@@ -89,23 +89,23 @@
         <section class="row-fluid">
         <div class="span2 sidebar">
                                 <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-170220695"></a>
+                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2146406286"></a>
                                 <a href="../namespaces/default.html" style="margin-left: 30px; padding-left: 0">\</a>
             </div>
-            <div id="namespace-170220695" class="accordion-body collapse in">
+            <div id="namespace-2146406286" class="accordion-body collapse in">
                 <div class="accordion-inner">
 
                                                     <div class="accordion" style="margin-bottom: 0">
         <div class="accordion-group">
             <div class="accordion-heading">
-                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1814876905"></a>
+                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-44708510"></a>
                                 <a href="../namespaces/PHPSandbox.html" style="margin-left: 30px; padding-left: 0">PHPSandbox</a>
             </div>
-            <div id="namespace-1814876905" class="accordion-body collapse ">
+            <div id="namespace-44708510" class="accordion-body collapse ">
                 <div class="accordion-inner">
 
                     
                     <ul>
                                                                                                     <li class="class"><a href="../classes/PHPSandbox.Error.html">Error</a></li>
@@ -200,11 +200,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/phpdoc-cache-2b/phpdoc-cache-file_9ea3fb738d2b3bb3e76d9fcf099a195a.dat b/docs/phpdoc-cache-2b/phpdoc-cache-file_9ea3fb738d2b3bb3e76d9fcf099a195a.dat
index a3efc30..b318211 100644
Binary files a/docs/phpdoc-cache-2b/phpdoc-cache-file_9ea3fb738d2b3bb3e76d9fcf099a195a.dat and b/docs/phpdoc-cache-2b/phpdoc-cache-file_9ea3fb738d2b3bb3e76d9fcf099a195a.dat differ
diff --git a/docs/phpdoc-cache-70/phpdoc-cache-file_e9d34eadaeaefe21f3f7d9637905ed7e.dat b/docs/phpdoc-cache-70/phpdoc-cache-file_e9d34eadaeaefe21f3f7d9637905ed7e.dat
index 5e6290e..7df671a 100644
Binary files a/docs/phpdoc-cache-70/phpdoc-cache-file_e9d34eadaeaefe21f3f7d9637905ed7e.dat and b/docs/phpdoc-cache-70/phpdoc-cache-file_e9d34eadaeaefe21f3f7d9637905ed7e.dat differ
diff --git a/docs/phpdoc-cache-72/phpdoc-cache-file_71b26f83a6d8fca5a6e6d0e38043da73.dat b/docs/phpdoc-cache-72/phpdoc-cache-file_71b26f83a6d8fca5a6e6d0e38043da73.dat
index 787ee93..50e5eb4 100644
Binary files a/docs/phpdoc-cache-72/phpdoc-cache-file_71b26f83a6d8fca5a6e6d0e38043da73.dat and b/docs/phpdoc-cache-72/phpdoc-cache-file_71b26f83a6d8fca5a6e6d0e38043da73.dat differ
diff --git a/docs/phpdoc-cache-ba/phpdoc-cache-file_1650e678d9bfd900b640a959c8b1e0a7.dat b/docs/phpdoc-cache-ba/phpdoc-cache-file_1650e678d9bfd900b640a959c8b1e0a7.dat
index 49e4211..f7b1909 100644
Binary files a/docs/phpdoc-cache-ba/phpdoc-cache-file_1650e678d9bfd900b640a959c8b1e0a7.dat and b/docs/phpdoc-cache-ba/phpdoc-cache-file_1650e678d9bfd900b640a959c8b1e0a7.dat differ
diff --git a/docs/phpdoc-cache-d6/phpdoc-cache-file_1ab0dec1234e249d2c697ed723a0a834.dat b/docs/phpdoc-cache-d6/phpdoc-cache-file_1ab0dec1234e249d2c697ed723a0a834.dat
index 60f75ed..d5fa0f3 100644
Binary files a/docs/phpdoc-cache-d6/phpdoc-cache-file_1ab0dec1234e249d2c697ed723a0a834.dat and b/docs/phpdoc-cache-d6/phpdoc-cache-file_1ab0dec1234e249d2c697ed723a0a834.dat differ
diff --git a/docs/phpdoc-cache-e8/phpdoc-cache-file_28dd4a0d5fd4671edbec88b87b53efe2.dat b/docs/phpdoc-cache-e8/phpdoc-cache-file_28dd4a0d5fd4671edbec88b87b53efe2.dat
index 7284a77..65a633d 100644
Binary files a/docs/phpdoc-cache-e8/phpdoc-cache-file_28dd4a0d5fd4671edbec88b87b53efe2.dat and b/docs/phpdoc-cache-e8/phpdoc-cache-file_28dd4a0d5fd4671edbec88b87b53efe2.dat differ
diff --git a/docs/reports/deprecated.html b/docs/reports/deprecated.html
index ca7c2fe..6339826 100644
--- a/docs/reports/deprecated.html
+++ b/docs/reports/deprecated.html
@@ -141,11 +141,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/reports/errors.html b/docs/reports/errors.html
index 92f5dc1..870f0a7 100644
--- a/docs/reports/errors.html
+++ b/docs/reports/errors.html
@@ -108,11 +108,11 @@
                             <div class="package-contents">
                                             <a name="PHPSandbox.php" id="PHPSandbox.php"></a>
                         <h3>
                             <i class="icon-file"></i>
                             PHPSandbox.php
-                            <small style="float: right;padding-right: 10px;">1</small>
+                            <small style="float: right;padding-right: 10px;">2</small>
                         </h3>
                         <div>
                             <table class="table markers table-bordered">
                                 <thead>
                                 <tr>
@@ -122,11 +122,16 @@
                                 </tr>
                                 </thead>
                                 <tbody>
                                                                     <tr>
                                         <td>error</td>
-                                        <td>6607</td>
+                                        <td>6748</td>
+                                        <td>Argument $name is missing from the Docblock of getSandbox()</td>
+                                    </tr>
+                                                                    <tr>
+                                        <td>error</td>
+                                        <td>6748</td>
                                         <td>No summary for method getSandbox()</td>
                                     </tr>
                                                             </tbody>
                             </table>
                         </div>
@@ -206,11 +211,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/docs/reports/markers.html b/docs/reports/markers.html
index 24f6c90..0d32309 100644
--- a/docs/reports/markers.html
+++ b/docs/reports/markers.html
@@ -142,11 +142,11 @@
             </section>
             <section class="row-fluid">
                 <section class="span10 offset1">
                     <hr />
                     Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and authored
-                    on March 5th, 2014 at 04:43.
+                    on March 10th, 2014 at 20:56.
                 </section>
             </section>
         </section>
     </footer>
 </div>
diff --git a/src/PHPSandbox/Error.php b/src/PHPSandbox/Error.php
index c50211a..f666d37 100644
--- a/src/PHPSandbox/Error.php
+++ b/src/PHPSandbox/Error.php
@@ -9,11 +9,11 @@
      * This class extends Exception to allow for catching PHPSandbox-specific exceptions.
      *
      * @namespace PHPSandbox
      *
      * @author  Elijah Horton <fieryprophet@yahoo.com>
-     * @version 1.3.2
+     * @version 1.3.3
      */
     class Error extends \Exception {
         /* START ERROR CODES */
         /* MISC ERRORS                      (1-99)    */
         const PARSER_ERROR              =       1;
diff --git a/src/PHPSandbox/PHPSandbox.php b/src/PHPSandbox/PHPSandbox.php
index 523b8d8..fa42f4c 100644
--- a/src/PHPSandbox/PHPSandbox.php
+++ b/src/PHPSandbox/PHPSandbox.php
@@ -12,11 +12,11 @@
      * only has to create a PHPSandbox instance, configure its options, and run their code
      *
      * @namespace PHPSandbox
      *
      * @author  Elijah Horton <fieryprophet@yahoo.com>
-     * @version 1.3.2
+     * @version 1.3.3
      */
     class PHPSandbox {
         /**
          * @const    string      The prefix given to the obfuscated sandbox key passed to the generated code
          */
@@ -85,26 +85,33 @@
             'get_defined_constants',
             'get_declared_classes',
             'get_declared_interfaces',
             'get_declared_traits'
         );
-        /**
-         * @var    array          A static array of var_dump, print_r and var_export for redefining those functions
-         */
-        public static $var_funcs = array(
-            'var_dump',
-            'print_r',
-            'var_export'
-        );
         /**
          * @var    array          A static array of func_get_args, func_get_arg, and func_num_args used for redefining those functions
          */
         public static $arg_funcs = array(
             'func_get_args',
             'func_get_arg',
             'func_num_args'
         );
+        /**
+         * @var    array          A static array of var_dump, print_r and var_export, intval, floatval, is_string, is_object,
+         *                          is_scalar and is_callable for redefining those functions
+         */
+        public static $sandboxed_string_funcs = array(
+            'var_dump',
+            'print_r',
+            'var_export',
+            'intval',
+            'floatval',
+            'is_string',
+            'is_object',
+            'is_scalar',
+            'is_callable'
+        );
         /**
          * @var    string       The randomly generated name of the PHPSandbox variable passed to the generated closure
          */
         public $name = '';
         /**
@@ -251,24 +258,24 @@
         /**
          * @var    bool       Should PHPSandbox overwrite get_defined_functions, get_defined_vars, get_defined_constants, get_declared_classes, get_declared_interfaces and get_declared_traits?
          * @default true
          */
         public $overwrite_defined_funcs     = true;
-        /**
-         * @var    bool       Should PHPSandbox overwrite var_dump, print_r, and var_export?
-         * @default true
-         */
-        public $overwrite_var_funcs         = true;
         /**
          * @var    bool       Should PHPSandbox overwrite func_get_args, func_get_arg and func_num_args?
          * @default true
          */
         public $overwrite_func_get_args     = true;
         /**
          * @var    bool       Should PHPSandbox overwrite $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $_REQUEST, $_SERVER, $_SESSION and $GLOBALS superglobals? If so, unless alternate superglobal values have been defined they will return as empty arrays.
          * @default true
          */
+        public $overwrite_sandboxed_string_funcs         = true;
+        /**
+         * @var    bool       Should PHPSandbox overwrite functions to help hide SandboxedStrings?
+         * @default true
+         */
         public $overwrite_superglobals      = true;
         /**
          * @var    bool       Should PHPSandbox allow sandboxed code to declare functions?
          * @default false
          */
@@ -1918,10 +1925,62 @@
                     $traits[strtolower($value)] = $value;
                 }
             }
             return array_values($traits);
         }
+        /** Get PHPSandbox redefined function arguments array
+         *
+         * @param   array           $arguments      Array result from func_get_args() is passed here
+         *
+         * @return  array           Returns the redefined arguments array
+         */
+        public function _func_get_args(array $arguments = array()){
+            foreach($arguments as $index => $value){
+                if($value instanceof self){
+                    unset($arguments[$index]); //hide PHPSandbox variable
+                }
+            }
+            return $arguments;
+        }
+        /** Get PHPSandbox redefined function argument
+         *
+         * @param   array           $arguments      Array result from func_get_args() is passed here
+         *
+         * @param   int             $index          Requested func_get_arg index is passed here
+         *
+         * @return  array           Returns the redefined argument
+         */
+        public function _func_get_arg(array $arguments = array(), $index = 0){
+            if($arguments[$index] instanceof self){
+                $index++;   //get next argument instead
+            }
+            return isset($arguments[$index]) && !($arguments[$index] instanceof self) ? $arguments[$index] : null;
+        }
+        /** Get PHPSandbox redefined number of function arguments
+         *
+         * @param   array           $arguments      Array result from func_get_args() is passed here
+         *
+         * @return  int             Returns the redefined number of function arguments
+         */
+        public function _func_num_args(array $arguments = array()){
+            $count = count($arguments);
+            foreach($arguments as $argument){
+                if($argument instanceof self){
+                    $count--;
+                }
+            }
+            return $count > 0 ? $count : 0;
+        }
+        /** Wrap output value in SandboxString
+         *
+         * @param   mixed                   $value      Value to wrap
+         *
+         * @return  mixed|SandboxedString   Returns the wrapped value
+         */
+        public function _wrap($value){
+            return is_string($value) ? new SandboxedString($value, $this) : $value;
+        }
         /** Get PHPSandbox redefined var_dump
          *
          * @return  array           Returns the redefined var_dump
          */
         public function _var_dump(){
@@ -1963,52 +2022,90 @@
                     $arguments[$index] = strval($value);
                 }
             }
             return call_user_func_array('var_export', $arguments);
         }
-        /** Get PHPSandbox redefined function arguments array
+        /** Return integer value of SandboxedString or mixed value
          *
-         * @param   array           $arguments      Array result from func_get_args() is passed here
+         * @param   mixed           $value      Value to return as integer
          *
-         * @return  array           Returns the redefined arguments array
+         * @return  int             Returns the integer value
          */
-        public function _func_get_args(array $arguments = array()){
-            foreach($arguments as $index => $value){
-                if($value instanceof self){
-                    unset($arguments[$index]); //hide PHPSandbox variable
-                }
-            }
-            return $arguments;
+        public function _intval($value){
+            return intval($value instanceof SandboxedString ? strval($value): $value);
         }
-        /** Get PHPSandbox redefined function argument
+        /** Return float value of SandboxedString or mixed value
          *
-         * @param   array           $arguments      Array result from func_get_args() is passed here
+         * @param   mixed           $value      Value to return as float
          *
-         * @param   int             $index          Requested func_get_arg index is passed here
+         * @return  float           Returns the float value
+         */
+        public function _floatval($value){
+            return floatval($value instanceof SandboxedString ? strval($value): $value);
+        }
+        /** Return array value of SandboxedString or mixed value
          *
-         * @return  array           Returns the redefined argument
+         * @param   mixed           $value      Value to return as array
+         *
+         * @return  array           Returns the array value
          */
-        public function _func_get_arg(array $arguments = array(), $index = 0){
-            if($arguments[$index] instanceof self){
-                $index++;   //get next argument instead
+        public function _arrayval($value){
+            if($value instanceof SandboxedString){
+                return (array)strval($value);
             }
-            return isset($arguments[$index]) && !($arguments[$index] instanceof self) ? $arguments[$index] : null;
+            return is_array($value) ? $value : (array)$value;
         }
-        /** Get PHPSandbox redefined number of function arguments
+        /** Return object value of SandboxedString or mixed value
          *
-         * @param   array           $arguments      Array result from func_get_args() is passed here
+         * @param   mixed           $value      Value to return as object
          *
-         * @return  int             Returns the redefined number of function arguments
+         * @return  object          Returns the object value
          */
-        public function _func_num_args(array $arguments = array()){
-            $count = count($arguments);
-            foreach($arguments as $argument){
-                if($argument instanceof self){
-                    $count--;
-                }
+        public function _objectval($value){
+            if($value instanceof SandboxedString){
+                return (object)strval($value);
             }
-            return $count > 0 ? $count : 0;
+            return is_object($value) ? $value : (object)$value;
+        }
+        /** Return is_string value of SandboxedString or mixed value
+         *
+         * @param   mixed           $value      Value to check if is_string
+         *
+         * @return  bool            Returns the is_string value
+         */
+        public function _is_string($value){
+            return ($value instanceof SandboxedString) ? true : is_string($value);
+        }
+        /** Return is_object value of SandboxedString or mixed value
+         *
+         * @param   mixed           $value      Value to check if is_object
+         *
+         * @return  bool            Returns the is_object value
+         */
+        public function _is_object($value){
+            return ($value instanceof SandboxedString) ? false : is_object($value);
+        }
+        /** Return is_scalar value of SandboxedString or mixed value
+         *
+         * @param   mixed           $value      Value to check if is_scalar
+         *
+         * @return  bool            Returns the is_scalar value
+         */
+        public function _is_scalar($value){
+            return ($value instanceof SandboxedString) ? true : is_scalar($value);
+        }
+        /** Return is_callable value of SandboxedString or mixed value
+         *
+         * @param   mixed           $value      Value to check if is_callable
+         *
+         * @return  bool            Returns the is_callable value
+         */
+        public function _is_callable($value){
+            if($value instanceof SandboxedString){
+                $value = strval($value);
+            }
+            return is_callable($value);
         }
         /** Get PHPSandbox redefined function. This is an internal PHPSandbox function but requires public access to work.
          *
          * @throws  Error           Will throw exception if invalid function requested
          *
@@ -5718,10 +5815,12 @@
             if($name instanceof \Closure){
                 if(!$this->allow_closures){
                     $this->error("Sandboxed code attempted to call closure!", Error::CLOSURE_ERROR);
                 }
                 return true;
+            } else if($name instanceof SandboxedString){
+                $name = strval($name);
             }
             if(!$name || !is_string($name)){
                 $this->error("Sandboxed code attempted to call unnamed function!", Error::VALID_FUNC_ERROR, null, '');
             }
             $name = $this->normalize_func($name);
@@ -5749,10 +5848,13 @@
          *
          * @return  bool     Returns true if variable is valid
          */
         public function check_var($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed variable!", Error::VALID_VAR_ERROR, null, '');
             }
             if(is_callable($this->validation['variable'])){
                 return call_user_func_array($this->validation['variable'], array($name, $this));
@@ -5778,10 +5880,13 @@
          *
          * @return  bool     Returns true if global is valid
          */
         public function check_global($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed global!", Error::VALID_GLOBAL_ERROR, null, '');
             }
             if(is_callable($this->validation['global'])){
                 return call_user_func_array($this->validation['global'], array($name, $this));
@@ -5805,10 +5910,13 @@
          *
          * @return  bool     Returns true if superglobal is valid
          */
         public function check_superglobal($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed superglobal!", Error::VALID_SUPERGLOBAL_ERROR, null, '');
             }
             $name = $this->normalize_superglobal($name);
             if(is_callable($this->validation['superglobal'])){
@@ -5835,10 +5943,13 @@
          *
          * @return  bool     Returns true if constant is valid
          */
         public function check_const($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed constant!", Error::VALID_CONST_ERROR, null, '');
             }
             if(strtolower($name) == 'true' || strtolower($name) == 'false'){
                 return $this->check_primitive('bool');
@@ -5870,10 +5981,13 @@
          *
          * @return  bool     Returns true if magic constant is valid
          */
         public function check_magic_const($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed magic constant!", Error::VALID_MAGIC_CONST_ERROR, null, '');
             }
             $name = $this->normalize_magic_const($name);
             if(is_callable($this->validation['magic_constant'])){
@@ -5900,10 +6014,13 @@
          *
          * @return  bool     Returns true if namespace is valid
          */
         public function check_namespace($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed namespace!", Error::VALID_NAMESPACE_ERROR, null, '');
             }
             $name = $this->normalize_namespace($name);
             if(is_callable($this->validation['namespace'])){
@@ -5930,10 +6047,13 @@
          *
          * @return  bool     Returns true if alias is valid
          */
         public function check_alias($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed alias!", Error::VALID_ALIAS_ERROR, null, '');
             }
             $name = $this->normalize_alias($name);
             if(is_callable($this->validation['alias'])){
@@ -5971,10 +6091,13 @@
          *
          * @return  bool     Returns true if class is valid
          */
         public function check_class($name, $extends = false){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             $action = $extends ? 'extend' : 'call';
             if(!$name){
                 $this->error("Sandboxed code attempted to $action unnamed class!", Error::VALID_CLASS_ERROR, null, '');
             }
             $name = $this->normalize_class($name);
@@ -6005,10 +6128,13 @@
          *
          * @return  bool     Returns true if interface is valid
          */
         public function check_interface($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed interface!", Error::VALID_INTERFACE_ERROR, null, '');
             }
             $name = $this->normalize_interface($name);
             if(is_callable($this->validation['interface'])){
@@ -6035,10 +6161,13 @@
          *
          * @return  bool     Returns true if trait is valid
          */
         public function check_trait($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed trait!", Error::VALID_TRAIT_ERROR, null, '');
             }
             $name = $this->normalize_trait($name);
             if(is_callable($this->validation['trait'])){
@@ -6065,10 +6194,13 @@
          *
          * @return  bool     Returns true if keyword is valid
          */
         public function check_keyword($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed keyword!", Error::VALID_KEYWORD_ERROR, null, '');
             }
             $name = $this->normalize_keyword($name);
             if(is_callable($this->validation['keyword'])){
@@ -6091,10 +6223,13 @@
          *
          * @return  bool     Returns true if operator is valid
          */
         public function check_operator($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed operator!", Error::VALID_OPERATOR_ERROR, null, '');
             }
             $name = $this->normalize_operator($name);
             if(is_callable($this->validation['operator'])){
@@ -6117,10 +6252,13 @@
          *
          * @return  bool     Returns true if primitive is valid
          */
         public function check_primitive($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed primitive!", Error::VALID_PRIMITIVE_ERROR, null, '');
             }
             $name = $this->normalize_primitive($name);
             if(is_callable($this->validation['primitive'])){
@@ -6143,10 +6281,13 @@
          *
          * @return  bool     Returns true if type is valid
          */
         public function check_type($name){
             $original_name = $name;
+            if($name instanceof SandboxedString){
+                $name = strval($name);
+            }
             if(!$name){
                 $this->error("Sandboxed code attempted to call unnamed type!", Error::VALID_TYPE_ERROR, null, '');
             }
             $name = $this->normalize_type($name);
             if(is_callable($this->validation['type'])){
@@ -6482,11 +6623,11 @@
                 $this->prepare_vars() .
                 $this->prepended_code .
                 $this->prepared_code .
                 $this->appended_code .
                 "\r\n" . '};' .
-                "\r\n" . 'if( PHP_MAJOR_VERSION >= 5 && PHP_MINOR_VERSION > 3){ $closure = $closure->bindTo(null); }' .
+                "\r\n" . 'if(method_exists($closure, "bindTo")){ $closure = $closure->bindTo(null); }' .
                 "\r\n" . 'return $closure();';
 
             usleep(1); //guarantee at least some time passes
             $this->prepare_time = (microtime(true) - $this->prepare_time);
             return $this->generated_code;
diff --git a/src/PHPSandbox/SandboxWhitelistVisitor.php b/src/PHPSandbox/SandboxWhitelistVisitor.php
index f97cab0..ccd8eb6 100644
--- a/src/PHPSandbox/SandboxWhitelistVisitor.php
+++ b/src/PHPSandbox/SandboxWhitelistVisitor.php
@@ -11,11 +11,11 @@
      * autmatically whitelist sandboxed code functions, classes, etc. if the appropriate settings are configured.
      *
      * @namespace PHPSandbox
      *
      * @author  Elijah Horton <fieryprophet@yahoo.com>
-     * @version 1.3.2
+     * @version 1.3.3
      */
     class SandboxWhitelistVisitor extends \PHPParser_NodeVisitorAbstract {
         /** The PHPSandbox instance to check against
          * @var PHPSandbox
          */
diff --git a/src/PHPSandbox/SandboxedString.php b/src/PHPSandbox/SandboxedString.php
index f3f8230..e32b5a1 100644
--- a/src/PHPSandbox/SandboxedString.php
+++ b/src/PHPSandbox/SandboxedString.php
@@ -9,24 +9,24 @@
      * This class wraps sandboxed strings to intercept and check callable invocations
      *
      * @namespace PHPSandbox
      *
      * @author  Elijah Horton <fieryprophet@yahoo.com>
-     * @version 1.3.2
+     * @version 1.3.3
      */
-    class SandboxedString {
+    class SandboxedString implements \ArrayAccess, \IteratorAggregate {
         /**
          * @var string
          */
         private $value;
         /**
          * @var PHPSandbox
          */
         private $sandbox;
         /** Constructs the SandboxedString
-         * @param   string      $value      Original string value
-         * @param   PHPSandbox  $sandbox    The current sandbox instance to test against
+         * @param   string      $value          Original string value
+         * @param   PHPSandbox  $sandbox        The current sandbox instance to test against
          */
         public function __construct($value, PHPSandbox $sandbox){
             $this->value = $value;
             $this->sandbox = $sandbox;
         }
@@ -41,14 +41,53 @@
          */
         public function __invoke(){
             if($this->sandbox->check_func($this->value)){
                 $name = strtolower($this->value);
                 if((in_array($name, PHPSandbox::$defined_funcs) && $this->sandbox->overwrite_defined_funcs)
-                    || (in_array($name, PHPSandbox::$var_funcs) && $this->sandbox->overwrite_var_funcs)
+                    || (in_array($name, PHPSandbox::$sandboxed_string_funcs) && $this->sandbox->overwrite_sandboxed_string_funcs)
                     || (in_array($name, PHPSandbox::$arg_funcs) && $this->sandbox->overwrite_func_get_args)){
                     return call_user_func_array(array($this->sandbox, '_' . $this->value), func_get_args());
                 }
                 return call_user_func_array($name, func_get_args());
             }
-            return null;
+            return '';
+        }
+        /** Set string value at specified offset
+         * @param   mixed       $offset            Offset to set value
+         * @param   mixed       $value             Value to set
+         */
+        public function offsetSet($offset, $value){
+            if($offset === null){
+                $this->value .= $value;
+            } else {
+                $this->value[$offset] = $value;
+            }
+        }
+        /** Get string value at specified offset
+         * @param   mixed       $offset            Offset to get value
+         *
+         * @return  string      Value to return
+         */
+        public function offsetGet($offset){
+            return $this->value[$offset];
+        }
+        /** Check if specified offset exists in string value
+         * @param   mixed       $offset            Offset to check
+         *
+         * @return  bool        Return true if offset exists, false otherwise
+         */
+        public function offsetExists($offset){
+            return isset($this->value[$offset]);
+        }
+        /** Unset string value at specified offset
+         * @param   mixed       $offset            Offset to unset
+         */
+        public function offsetUnset($offset){
+            unset($this->value[$offset]);
+        }
+        /** Return iterator for string value
+         * @return  \ArrayIterator      Array iterator to return
+         */
+        public function getIterator(){
+            return new \ArrayIterator(str_split(strval($this->value)));
         }
     }
\ No newline at end of file
diff --git a/src/PHPSandbox/ValidatorVisitor.php b/src/PHPSandbox/ValidatorVisitor.php
index f61ffc2..e44bfdd 100644
--- a/src/PHPSandbox/ValidatorVisitor.php
+++ b/src/PHPSandbox/ValidatorVisitor.php
@@ -11,11 +11,11 @@
      * configuration for errors, and throws exceptions if they are found
      *
      * @namespace PHPSandbox
      *
      * @author  Elijah Horton <fieryprophet@yahoo.com>
-     * @version 1.3.2
+     * @version 1.3.3
      */
     class ValidatorVisitor extends \PHPParser_NodeVisitorAbstract {
         /** The PHPSandbox instance to check against
          * @var PHPSandbox
          */
@@ -40,14 +40,25 @@
         public function leaveNode(\PHPParser_Node $node){
             if($node instanceof \PHPParser_Node_Stmt_InlineHTML){
                 if(!$this->sandbox->allow_escaping){
                     $this->sandbox->error("Sandboxed code attempted to escape to HTML!", Error::ESCAPE_ERROR, $node);
                 }
+            } else if($node instanceof \PHPParser_Node_Expr_Cast_String){
+                return new \PHPParser_Node_Expr_New(new \PHPParser_Node_Name_FullyQualified(array('PHPSandbox\\SandboxedString')), array(new \PHPParser_Node_Arg($node->expr), new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))))));
             } else if($node instanceof \PHPParser_Node_Expr_Cast){
                 if(!$this->sandbox->allow_casting){
                     $this->sandbox->error("Sandboxed code attempted to cast!", Error::CAST_ERROR, $node);
                 }
+                if($node instanceof \PHPParser_Node_Expr_Cast_Int){
+                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_intval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
+                } else if($node instanceof \PHPParser_Node_Expr_Cast_Double){
+                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_floatval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
+                } else if($node instanceof \PHPParser_Node_Expr_Cast_Array){
+                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_arrayval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
+                } else if($node instanceof \PHPParser_Node_Expr_Cast_Object){
+                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_objectval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
+                }
             } else if($node instanceof \PHPParser_Node_Expr_FuncCall){
                 if($node->name instanceof \PHPParser_Node_Name){
                     $name = strtolower($node->name->toString());
                     if(!$this->sandbox->check_func($name)){
                         $this->sandbox->error("Function failed custom validation!", Error::VALID_FUNC_ERROR, $node);
@@ -58,11 +69,11 @@
                         return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), 'call_func', $args, $node->getAttributes());
                     }
                     if($this->sandbox->overwrite_defined_funcs && in_array($name, PHPSandbox::$defined_funcs)){
                         return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_' . $name, array(new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_FuncCall(new \PHPParser_Node_Name(array($name))))), $node->getAttributes());
                     }
-                    if($this->sandbox->overwrite_var_funcs && in_array($name, PHPSandbox::$var_funcs)){
+                    if($this->sandbox->overwrite_sandboxed_string_funcs && in_array($name, PHPSandbox::$sandboxed_string_funcs)){
                         $args = $node->args;
                         return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_' . $name, $args, $node->getAttributes());
                     }
                     if($this->sandbox->overwrite_func_get_args && in_array($name, PHPSandbox::$arg_funcs)){
                         if($name == 'func_get_arg'){
@@ -72,10 +83,11 @@
                             }
                             return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_' . $name, array(new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_FuncCall(new \PHPParser_Node_Name(array('func_get_args')))), $index), $node->getAttributes());
                         }
                         return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_' . $name, array(new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_FuncCall(new \PHPParser_Node_Name(array('func_get_args'))))), $node->getAttributes());
                     }
+                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_wrap', array(new \PHPParser_Node_Arg($node)), $node->getAttributes());
                 } else {
                     return new \PHPParser_Node_Expr_Ternary(
                         new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), 'check_func', array(new \PHPParser_Node_Arg($node->name)), $node->getAttributes()),
                         $node,
                         new \PHPParser_Node_Expr_ConstFetch(new \PHPParser_Node_Name('null'))
@@ -369,10 +381,15 @@
                 }
             } else if($name = $this->is_operator($node)){
                 if(!$this->sandbox->check_operator($name)){
                     $this->sandbox->error("Operator failed custom validation!", Error::VALID_OPERATOR_ERROR, $node, $name);
                 }
+                if($node instanceof \PHPParser_Node_Expr_Concat){
+                    return new \PHPParser_Node_Expr_New(new \PHPParser_Node_Name_FullyQualified(array('PHPSandbox\\SandboxedString')), array(new \PHPParser_Node_Arg($node), new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))))));
+                } else if($node instanceof \PHPParser_Node_Expr_AssignConcat){
+                    return new \PHPParser_Node_Expr_Assign($node->var, new \PHPParser_Node_Expr_New(new \PHPParser_Node_Name_FullyQualified(array('PHPSandbox\\SandboxedString')), array(new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_Concat($node->var, $node->expr)), new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name)))))));
+                }
             } else if($name = $this->is_primitive($node)){
                 if(!$this->sandbox->check_primitive($name)){
                     $this->sandbox->error("Primitive failed custom validation!", Error::VALID_PRIMITIVE_ERROR, $node, $name);
                 }
                 if($node instanceof \PHPParser_Node_Scalar_String){
@@ -578,28 +595,13 @@
         }
         /** Test the current PHPParser_Node node to see if it is a primitive, and return the name if it is and null if it is not
          *
          * @param   \PHPParser_Node   $node          The sandboxed $node to test
          *
-         * @throws  Error             Throws exception if $node attempts to cast when $allow_casting is false in the PHPSandbox configuration
-         *
          * @return  string|null       Return string name of node, or null if it is not a primitive
          */
         protected function is_primitive(\PHPParser_Node $node){
-            switch($node->getType()){
-                case 'Expr_Cast_Array':
-                case 'Expr_Cast_Bool':
-                case 'Expr_Cast_Double':
-                case 'Expr_Cast_Int':
-                case 'Expr_Cast_String':
-                case 'Expr_Cast_Object':
-                case 'Expr_Cast_Unset':
-                    if(!$this->sandbox->allow_casting){
-                        $this->sandbox->error("Sandboxed code attempted to cast!", Error::CAST_ERROR, $node);
-                    }
-                    break;
-            }
             switch($node->getType()){
                 case 'Expr_Cast_Array':
                 case 'Expr_Array':
                     return 'array';
                 case 'Expr_Cast_Bool': //booleans are treated as constants otherwise. . .
diff --git a/src/PHPSandbox/WhitelistVisitor.php b/src/PHPSandbox/WhitelistVisitor.php
index dcbd4f1..4eba39e 100644
--- a/src/PHPSandbox/WhitelistVisitor.php
+++ b/src/PHPSandbox/WhitelistVisitor.php
@@ -11,11 +11,11 @@
      * autmatically whitelist trusted code functions, classes, etc. if the appropriate settings are configured.
      *
      * @namespace PHPSandbox
      *
      * @author  Elijah Horton <fieryprophet@yahoo.com>
-     * @version 1.3.2
+     * @version 1.3.3
      */
     class WhitelistVisitor extends \PHPParser_NodeVisitorAbstract {
         /** The PHPSandbox instance to check against
          * @var PHPSandbox
          */
diff --git a/tests/PHPSandbox/Tests/Config/DefaultConfigTest.php b/tests/PHPSandbox/Tests/Config/DefaultConfigTest.php
index eab15d4..d186d3f 100644
--- a/tests/PHPSandbox/Tests/Config/DefaultConfigTest.php
+++ b/tests/PHPSandbox/Tests/Config/DefaultConfigTest.php
@@ -308,6 +308,36 @@
          */
         public function testCallbackViolations(){
             $this->setExpectedException('PHPSandbox\Error');
             $this->sandbox->execute(function(){ array_filter(array("1"), "var_dump"); });
         }
+
+        /**
+         * Test whether sandbox disallows violating callbacks even with manipulated sandboxed strings
+         */
+        public function testCallbackViolationsWithStringManipulation(){
+            $this->setExpectedException('PHPSandbox\Error');
+            $this->sandbox->execute(function(){ $x = substr("var_dump2", 0, -1); array_filter(array("1"), $x); });
+        }
+
+        /**
+         * Test whether sandboxed strings do not cause conflicts with intval
+         */
+        public function testSandboxedStringsSatisfyIntval(){
+            $this->sandbox->whitelist_func('intval');
+            $this->assertEquals(1, $this->sandbox->execute(function(){ return intval("1"); }));
+        }
+
+        /**
+         * Test whether sandboxed strings do not cause conflicts with is_string, is_object, or is_scalar
+         */
+        public function testSandboxedStringsMimicStrings(){
+            $this->sandbox->whitelist_func(array(
+                'is_string',
+                'is_object',
+                'is_scalar'
+            ));
+            $this->assertEquals(true, $this->sandbox->execute(function(){ return is_string("1"); }));
+            $this->assertEquals(false, $this->sandbox->execute(function(){ return is_object("1"); }));
+            $this->assertEquals(true, $this->sandbox->execute(function(){ return is_scalar("1"); }));
+        }
     }
\ No newline at end of file
diff --git a/toolkit/index.php b/toolkit/index.php
index 9e2ba75..79e258f 100644
--- a/toolkit/index.php
+++ b/toolkit/index.php
@@ -117,11 +117,11 @@
             'options' => $options,
             'whitelist' => $whitelist,
             'blacklist' => $blacklist,
             'definitions' => $definitions
         ));
-        $sandbox->set_error_handler(function(\PHPSandbox\Error $e){ echo '<h2 style="color: red;">' . $e->getMessage() . '</h2>'; });
+        $sandbox->set_error_handler(function(\PHPSandbox\Error $e){ die('<h2 style="color: red;">' . $e->getMessage() . '</h2>'); });
         try {
             ob_start();
             if($setup_code){
                 @eval($setup_code);
             }
@@ -135,11 +135,11 @@
                 ' ms, total time: ' . round($sandbox->get_prepared_time()*1000, 2) . ' ms';
             $buffer = ob_get_contents();
             ob_end_clean();
             die('<pre>' . $buffer . '</pre>');
         } catch(\PHPSandbox\Error $e){
-            echo '<h2 style="color: red;">' . $e->getMessage() . '</h2>';
+            die('<h2 style="color: red;">' . $e->getMessage() . '</h2>');
         }
     }
 
     if(isset($_GET['template'])){
         $template = stripslashes($_GET['template']);
@@ -311,10 +311,11 @@
         &nbsp;&nbsp;&mdash;&nbsp;&nbsp;
         <strong>
             <a href="javascript:;" class="help">Help</a>
         </strong>
     </p>
+    <div align="center" style="font-size: 8px; font-weight: bold;">&copy; Copyright 2013 - <?php echo date("Y"); ?> Elijah Horton. - Some Rights Reserved.<br/>See <a href="../LICENSE" target="_blank">LICENSE</a> for details.</div>
     <hr class="hr"/>
     <h3 style="margin: 0;">Choose Template:</h3>
     <br/>
     <select id="templates">
         <option disabled="disabled">Select a template. . .</option>
@@ -556,10 +557,11 @@
         ?>
     </select>
     <br/>
     <br/>
     <input type="button" value="Run Code In Sandbox" id="run" style="width: 100%;"/>
+    <br/>
 </div>
 <div id="output_container">
     <h2>Output</h2>
     <div id="output" class="ui-widget ui-widget-content ui-corner-all"><pre>Hello World!</pre></div>
 </div>
diff --git a/toolkit/templates/002 - Evil Function.json b/toolkit/templates/002 - Evil Function.json
index 10ce9fd..8ad9d36 100644
--- a/toolkit/templates/002 - Evil Function.json	
+++ b/toolkit/templates/002 - Evil Function.json	
@@ -1 +1 @@
-{"code":"\/*\n    This template demonstrates how an eval is blocked\n    if the eval function is not allowed\n*\/\n\neval('echo \"This should not work if eval is disallowed.\"');","options":{"allow_variables":"0"},"blacklist":null,"whitelist":null}
\ No newline at end of file
+{"code":"\/*\n    This template demonstrates how an eval is blocked\n    if the eval function is not allowed\n*\/\n\neval('echo \"This should not work if eval is disallowed.\";');","options":{"allow_variables":"0"},"blacklist":null,"whitelist":null}
\ No newline at end of file

Vulnerable code: Copyright (c) 2013 by Elijah Horton (fieryprophet [at] yahoo.com)
                    PHPSandbox Toolkit 1.3.1
[![Build Status](https://travis-ci.org/fieryprophet/php-sandbox.png?branch=master)](https://travis-ci.org/fieryprophet/php-sandbox)

[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/badges/quality-score.png?s=4f2d82525b9e2c6bae18e26cf643ca3fd09333fc)](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/)

[![Code Coverage](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/badges/coverage.png?s=d6cef7d18a66d2ac39b76410b76c89fa15d84b8c)](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/)
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-553992218"></a>
            <div id="namespace-553992218" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-2135081389"></a>
            <div id="namespace-2135081389" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-148348232"></a>
            <div id="namespace-148348232" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1647787725"></a>
            <div id="namespace-1647787725" class="accordion-body collapse ">
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__var_dump" class="">_var_dump()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__print_r" class="">_print_r()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__var_export" class="">_var_export()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#property_var_funcs" class="">$var_funcs</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#property_overwrite_var_funcs" class="">$overwrite_var_funcs</a><br />
            <a id="property_var_funcs" name="property_var_funcs" class="anchor"></a>
                <h3 class="public ">$var_funcs</h3>
                <pre class="signature">$var_funcs : array</pre>
                &mdash; A static array of var_dump, print_r and var_export for redefining those functions                            </article>
            <a id="property_arg_funcs" name="property_arg_funcs" class="anchor"></a>
                <h3 class="public ">$arg_funcs</h3>
                <pre class="signature">$arg_funcs : array</pre>
                &mdash; A static array of func_get_args, func_get_arg, and func_num_args used for redefining those functions                            </article>
            <a id="property_overwrite_var_funcs" name="property_overwrite_var_funcs" class="anchor"></a>
                <h3 class="public ">$overwrite_var_funcs</h3>
                <pre class="signature">$overwrite_var_funcs : bool</pre>
                &mdash; Should PHPSandbox overwrite var_dump, print_r, and var_export?                            </article>
            <a id="property_overwrite_func_get_args" name="property_overwrite_func_get_args" class="anchor"></a>
                <h3 class="public ">$overwrite_func_get_args</h3>
                <pre class="signature">$overwrite_func_get_args : bool</pre>
                &mdash; Should PHPSandbox overwrite func_get_args, func_get_arg and func_num_args?                            </article>
                &mdash; Should PHPSandbox overwrite $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $_REQUEST, $_SERVER, $_SESSION and $GLOBALS superglobals? If so, unless alternate superglobal values have been defined they will return as empty arrays.                            </article>
            <a id="method__func_get_args" name="method__func_get_args" class="anchor"></a>
                <h3 class="public ">_func_get_args()</h3>
                <pre class="signature" style="margin-right: 54px;">_func_get_args(array <span class="argument">$arguments</span>) : array</pre>
                <p><em>Get PHPSandbox redefined function arguments array</em></p>
                                <td>array</td>
                                <td>$arguments</td>
                                <td><p>Array result from func_get_args() is passed here</p>
                    array
                                            &mdash; <p>Returns the redefined arguments array</p>
            <a id="method__func_get_arg" name="method__func_get_arg" class="anchor"></a>
                <h3 class="public ">_func_get_arg()</h3>
                <pre class="signature" style="margin-right: 54px;">_func_get_arg(array <span class="argument">$arguments</span>, int <span class="argument">$index</span>) : array</pre>
                <p><em>Get PHPSandbox redefined function argument</em></p>
                                <td>array</td>
                                <td>$arguments</td>
                                <td><p>Array result from func_get_args() is passed here</p>
                                <td>int</td>
                                <td>$index</td>
                                <td><p>Requested func_get_arg index is passed here</p>
                                            &mdash; <p>Returns the redefined argument</p>
            <a id="method__func_num_args" name="method__func_num_args" class="anchor"></a>
                <h3 class="public ">_func_num_args()</h3>
                <pre class="signature" style="margin-right: 54px;">_func_num_args(array <span class="argument">$arguments</span>) : int</pre>
                <p><em>Get PHPSandbox redefined number of function arguments</em></p>
                                <td>array</td>
                                <td>$arguments</td>
                                <td><p>Array result from func_get_args() is passed here</p>
                    int
                                            &mdash; <p>Returns the redefined number of function arguments</p>
                    on March 5th, 2014 at 04:43.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-174531007"></a>
            <div id="namespace-174531007" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1263837536"></a>
            <div id="namespace-1263837536" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-298168079"></a>
            <div id="namespace-298168079" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-171292534"></a>
            <div id="namespace-171292534" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-190716146"></a>
            <div id="namespace-190716146" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1067596443"></a>
            <div id="namespace-1067596443" class="accordion-body collapse ">
                                    <h4>Throws</h4>
                    <dl>
                                                    <dt>\PHPSandbox\Error</dt>
                            <dd><p>Throws exception if $node attempts to cast when $allow_casting is false in the PHPSandbox configuration</p>
</dd>
                                                                    </dl>
                    on March 5th, 2014 at 04:43.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1971830681"></a>
            <div id="namespace-1971830681" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-868130616"></a>
            <div id="namespace-868130616" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1697921261"></a>
            <div id="namespace-1697921261" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-130381843"></a>
            <div id="namespace-130381843" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
     * @version 1.3.2
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-555703967"></a>
            <div id="namespace-555703967" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-2138167363"></a>
            <div id="namespace-2138167363" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
     * @version 1.3.2
        /**
         * @var    array          A static array of var_dump, print_r and var_export for redefining those functions
         */
        public static $var_funcs = array(
            'var_dump',
            'print_r',
            'var_export'
        );
        /**
         * @var    bool       Should PHPSandbox overwrite var_dump, print_r, and var_export?
         * @default true
         */
        public $overwrite_var_funcs         = true;
        /** Get PHPSandbox redefined function arguments array
         * @param   array           $arguments      Array result from func_get_args() is passed here
         * @return  array           Returns the redefined arguments array
        public function _func_get_args(array $arguments = array()){
            foreach($arguments as $index => $value){
                if($value instanceof self){
                    unset($arguments[$index]); //hide PHPSandbox variable
                }
            }
            return $arguments;
        /** Get PHPSandbox redefined function argument
         * @param   array           $arguments      Array result from func_get_args() is passed here
         * @param   int             $index          Requested func_get_arg index is passed here
         * @return  array           Returns the redefined argument
        public function _func_get_arg(array $arguments = array(), $index = 0){
            if($arguments[$index] instanceof self){
                $index++;   //get next argument instead
            return isset($arguments[$index]) && !($arguments[$index] instanceof self) ? $arguments[$index] : null;
        /** Get PHPSandbox redefined number of function arguments
         * @param   array           $arguments      Array result from func_get_args() is passed here
         * @return  int             Returns the redefined number of function arguments
        public function _func_num_args(array $arguments = array()){
            $count = count($arguments);
            foreach($arguments as $argument){
                if($argument instanceof self){
                    $count--;
                }
            return $count > 0 ? $count : 0;
                "\r\n" . 'if( PHP_MAJOR_VERSION >= 5 && PHP_MINOR_VERSION > 3){ $closure = $closure->bindTo(null); }' .
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-891059786"></a>
            <div id="namespace-891059786" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-337296115"></a>
            <div id="namespace-337296115" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
     * @version 1.3.2
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1040308460"></a>
            <div id="namespace-1040308460" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-418048951"></a>
            <div id="namespace-418048951" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
     * @version 1.3.2
    class SandboxedString {
         * @param   string      $value      Original string value
         * @param   PHPSandbox  $sandbox    The current sandbox instance to test against
                    || (in_array($name, PHPSandbox::$var_funcs) && $this->sandbox->overwrite_var_funcs)
            return null;
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-907988671"></a>
            <div id="namespace-907988671" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-194642397"></a>
            <div id="namespace-194642397" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
     * @version 1.3.2
                    if($this->sandbox->overwrite_var_funcs && in_array($name, PHPSandbox::$var_funcs)){
         * @throws  Error             Throws exception if $node attempts to cast when $allow_casting is false in the PHPSandbox configuration
         *
            switch($node->getType()){
                case 'Expr_Cast_Array':
                case 'Expr_Cast_Bool':
                case 'Expr_Cast_Double':
                case 'Expr_Cast_Int':
                case 'Expr_Cast_String':
                case 'Expr_Cast_Object':
                case 'Expr_Cast_Unset':
                    if(!$this->sandbox->allow_casting){
                        $this->sandbox->error("Sandboxed code attempted to cast!", Error::CAST_ERROR, $node);
                    }
                    break;
            }
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-854772276"></a>
            <div id="namespace-854772276" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1662890078"></a>
            <div id="namespace-1662890078" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
     * @version 1.3.2
                    on March 5th, 2014 at 04:43.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1624839564"></a>
            <div id="namespace-1624839564" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1810365709"></a>
            <div id="namespace-1810365709" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-25397207"></a>
            <div id="namespace-25397207" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-134930522"></a>
            <div id="namespace-134930522" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-170220695"></a>
            <div id="namespace-170220695" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1814876905"></a>
            <div id="namespace-1814876905" class="accordion-body collapse ">
                    on March 5th, 2014 at 04:43.
                    on March 5th, 2014 at 04:43.
                            <small style="float: right;padding-right: 10px;">1</small>
                                        <td>6607</td>
                    on March 5th, 2014 at 04:43.
                    on March 5th, 2014 at 04:43.
     * @version 1.3.2
     * @version 1.3.2
        /**
         * @var    array          A static array of var_dump, print_r and var_export for redefining those functions
         */
        public static $var_funcs = array(
            'var_dump',
            'print_r',
            'var_export'
        );
        /**
         * @var    bool       Should PHPSandbox overwrite var_dump, print_r, and var_export?
         * @default true
         */
        public $overwrite_var_funcs         = true;
        /** Get PHPSandbox redefined function arguments array
         * @param   array           $arguments      Array result from func_get_args() is passed here
         * @return  array           Returns the redefined arguments array
        public function _func_get_args(array $arguments = array()){
            foreach($arguments as $index => $value){
                if($value instanceof self){
                    unset($arguments[$index]); //hide PHPSandbox variable
                }
            }
            return $arguments;
        /** Get PHPSandbox redefined function argument
         * @param   array           $arguments      Array result from func_get_args() is passed here
         * @param   int             $index          Requested func_get_arg index is passed here
         * @return  array           Returns the redefined argument
        public function _func_get_arg(array $arguments = array(), $index = 0){
            if($arguments[$index] instanceof self){
                $index++;   //get next argument instead
            return isset($arguments[$index]) && !($arguments[$index] instanceof self) ? $arguments[$index] : null;
        /** Get PHPSandbox redefined number of function arguments
         * @param   array           $arguments      Array result from func_get_args() is passed here
         * @return  int             Returns the redefined number of function arguments
        public function _func_num_args(array $arguments = array()){
            $count = count($arguments);
            foreach($arguments as $argument){
                if($argument instanceof self){
                    $count--;
                }
            return $count > 0 ? $count : 0;
                "\r\n" . 'if( PHP_MAJOR_VERSION >= 5 && PHP_MINOR_VERSION > 3){ $closure = $closure->bindTo(null); }' .
     * @version 1.3.2
     * @version 1.3.2
    class SandboxedString {
         * @param   string      $value      Original string value
         * @param   PHPSandbox  $sandbox    The current sandbox instance to test against
                    || (in_array($name, PHPSandbox::$var_funcs) && $this->sandbox->overwrite_var_funcs)
            return null;
     * @version 1.3.2
                    if($this->sandbox->overwrite_var_funcs && in_array($name, PHPSandbox::$var_funcs)){
         * @throws  Error             Throws exception if $node attempts to cast when $allow_casting is false in the PHPSandbox configuration
         *
            switch($node->getType()){
                case 'Expr_Cast_Array':
                case 'Expr_Cast_Bool':
                case 'Expr_Cast_Double':
                case 'Expr_Cast_Int':
                case 'Expr_Cast_String':
                case 'Expr_Cast_Object':
                case 'Expr_Cast_Unset':
                    if(!$this->sandbox->allow_casting){
                        $this->sandbox->error("Sandboxed code attempted to cast!", Error::CAST_ERROR, $node);
                    }
                    break;
            }
     * @version 1.3.2
        $sandbox->set_error_handler(function(\PHPSandbox\Error $e){ echo '<h2 style="color: red;">' . $e->getMessage() . '</h2>'; });
            echo '<h2 style="color: red;">' . $e->getMessage() . '</h2>';
{"code":"\/*\n    This template demonstrates how an eval is blocked\n    if the eval function is not allowed\n*\/\n\neval('echo \"This should not work if eval is disallowed.\"');","options":{"allow_variables":"0"},"blacklist":null,"whitelist":null}
Fixed code: ##03/10/2014
- Addressed potential vulnerabilities related to SandboxedStrings where sandboxed code could manipulate the strings in a way that could defeat their protection
- Solved errors from casting sandboxed strings to int
- Overwrote some internal PHP functions to further mask SandboxedStrings from the sandboxed code and prevent type-checking errors
- Added more tests related to SandboxedStrings
- Made some minor tweaks to PHPSandbox Toolkit

Copyright (c) 2013-2014 by Elijah Horton (fieryprophet [at] yahoo.com)
                    PHPSandbox Toolkit 1.3.3
[![Build Status](https://travis-ci.org/fieryprophet/php-sandbox.png?branch=master)](https://travis-ci.org/fieryprophet/php-sandbox) [![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/badges/quality-score.png?s=4f2d82525b9e2c6bae18e26cf643ca3fd09333fc)](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/) [![Code Coverage](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/badges/coverage.png?s=d6cef7d18a66d2ac39b76410b76c89fa15d84b8c)](https://scrutinizer-ci.com/g/fieryprophet/php-sandbox/) [![Latest Stable Version](https://poser.pugx.org/fieryprophet/php-sandbox/v/stable.png)](https://packagist.org/packages/fieryprophet/php-sandbox) [![Total Downloads](https://poser.pugx.org/fieryprophet/php-sandbox/downloads.png)](https://packagist.org/packages/fieryprophet/php-sandbox) [![Latest Unstable Version](https://poser.pugx.org/fieryprophet/php-sandbox/v/unstable.png)](https://packagist.org/packages/fieryprophet/php-sandbox) [![License](https://poser.pugx.org/fieryprophet/php-sandbox/license.png)](https://packagist.org/packages/fieryprophet/php-sandbox)
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2138946611"></a>
            <div id="namespace-2138946611" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-288135741"></a>
            <div id="namespace-288135741" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1578178908"></a>
            <div id="namespace-1578178908" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-736098440"></a>
            <div id="namespace-736098440" class="accordion-body collapse ">
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__wrap" class="">_wrap()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__var_dump" class="">_var_dump()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__print_r" class="">_print_r()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__var_export" class="">_var_export()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__intval" class="">_intval()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__floatval" class="">_floatval()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__arrayval" class="">_arrayval()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__objectval" class="">_objectval()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__is_string" class="">_is_string()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__is_object" class="">_is_object()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__is_scalar" class="">_is_scalar()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#method__is_callable" class="">_is_callable()</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#property_sandboxed_string_funcs" class="">$sandboxed_string_funcs</a><br />
                                                                    <a href="../classes/PHPSandbox.PHPSandbox.html#property_overwrite_sandboxed_string_funcs" class="">$overwrite_sandboxed_string_funcs</a><br />
            <a id="property_arg_funcs" name="property_arg_funcs" class="anchor"></a>
                <h3 class="public ">$arg_funcs</h3>
                <pre class="signature">$arg_funcs : array</pre>
                &mdash; A static array of func_get_args, func_get_arg, and func_num_args used for redefining those functions                            </article>
            <a id="property_sandboxed_string_funcs" name="property_sandboxed_string_funcs" class="anchor"></a>
                <h3 class="public ">$sandboxed_string_funcs</h3>
                <pre class="signature">$sandboxed_string_funcs : array</pre>
                &mdash; A static array of var_dump, print_r and var_export, intval, floatval, is_string, is_object,
                         is_scalar and is_callable for redefining those functions                            </article>
            <a id="property_overwrite_func_get_args" name="property_overwrite_func_get_args" class="anchor"></a>
                <h3 class="public ">$overwrite_func_get_args</h3>
                <pre class="signature">$overwrite_func_get_args : bool</pre>
                &mdash; Should PHPSandbox overwrite func_get_args, func_get_arg and func_num_args?                            </article>
            <a id="property_overwrite_sandboxed_string_funcs" name="property_overwrite_sandboxed_string_funcs" class="anchor"></a>
                <h3 class="public ">$overwrite_sandboxed_string_funcs</h3>
                <pre class="signature">$overwrite_sandboxed_string_funcs : bool</pre>
                &mdash; Should PHPSandbox overwrite $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $_REQUEST, $_SERVER, $_SESSION and $GLOBALS superglobals? If so, unless alternate superglobal values have been defined they will return as empty arrays.                            </article>
                &mdash; Should PHPSandbox overwrite functions to help hide SandboxedStrings?                            </article>
            <a id="method__func_get_args" name="method__func_get_args" class="anchor"></a>
            <article class="method">
                <h3 class="public ">_func_get_args()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">_func_get_args(array <span class="argument">$arguments</span>) : array</pre>
                <p><em>Get PHPSandbox redefined function arguments array</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                                    <tr>
                                <td>array</td>
                                <td>$arguments</td>
                                <td><p>Array result from func_get_args() is passed here</p>
</td>
                            </tr>
                                            </table>
                
                
                                    <h4>Returns</h4>
                    array
                                            &mdash; <p>Returns the redefined arguments array</p>

                                                </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method__func_get_arg" name="method__func_get_arg" class="anchor"></a>
            <article class="method">
                <h3 class="public ">_func_get_arg()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">_func_get_arg(array <span class="argument">$arguments</span>, int <span class="argument">$index</span>) : array</pre>
                <p><em>Get PHPSandbox redefined function argument</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                                    <tr>
                                <td>array</td>
                                <td>$arguments</td>
                                <td><p>Array result from func_get_args() is passed here</p>
</td>
                            </tr>
                                                    <tr>
                                <td>int</td>
                                <td>$index</td>
                                <td><p>Requested func_get_arg index is passed here</p>
</td>
                            </tr>
                                            </table>
                
                
                                    <h4>Returns</h4>
                    array
                                            &mdash; <p>Returns the redefined argument</p>

                                                </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method__func_num_args" name="method__func_num_args" class="anchor"></a>
            <article class="method">
                <h3 class="public ">_func_num_args()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">_func_num_args(array <span class="argument">$arguments</span>) : int</pre>
                <p><em>Get PHPSandbox redefined number of function arguments</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                                    <tr>
                                <td>array</td>
                                <td>$arguments</td>
                                <td><p>Array result from func_get_args() is passed here</p>
</td>
                            </tr>
                                            </table>
                
                
                                    <h4>Returns</h4>
                    int
                                            &mdash; <p>Returns the redefined number of function arguments</p>

                                                </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method__wrap" name="method__wrap" class="anchor"></a>
            <article class="method">
                <h3 class="public ">_wrap()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">_wrap(mixed <span class="argument">$value</span>) : mixed|\PHPSandbox\SandboxedString</pre>
                <p><em>Wrap output value in SandboxString</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                                    <tr>
                                <td>mixed</td>
                                <td>$value</td>
                                <td><p>Value to wrap</p>
</td>
                            </tr>
                                            </table>
                
                
                                    <h4>Returns</h4>
                    mixed|<a href="../classes/PHPSandbox.SandboxedString.html">\PHPSandbox\SandboxedString</a>
                                            &mdash; <p>Returns the wrapped value</p>

                                                </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method__intval" name="method__intval" class="anchor"></a>
                <h3 class="public ">_intval()</h3>
                <pre class="signature" style="margin-right: 54px;">_intval(mixed <span class="argument">$value</span>) : int</pre>
                <p><em>Return integer value of SandboxedString or mixed value</em></p>
                                <td>mixed</td>
                                <td>$value</td>
                                <td><p>Value to return as integer</p>
                    int
                                            &mdash; <p>Returns the integer value</p>
            <a id="method__floatval" name="method__floatval" class="anchor"></a>
                <h3 class="public ">_floatval()</h3>
                <pre class="signature" style="margin-right: 54px;">_floatval(mixed <span class="argument">$value</span>) : float</pre>
                <p><em>Return float value of SandboxedString or mixed value</em></p>
                                <td>mixed</td>
                                <td>$value</td>
                                <td><p>Value to return as float</p>
                                            </table>
                
                
                                    <h4>Returns</h4>
                    float
                                            &mdash; <p>Returns the float value</p>

                                                </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method__arrayval" name="method__arrayval" class="anchor"></a>
            <article class="method">
                <h3 class="public ">_arrayval()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">_arrayval(mixed <span class="argument">$value</span>) : array</pre>
                <p><em>Return array value of SandboxedString or mixed value</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                <td>mixed</td>
                                <td>$value</td>
                                <td><p>Value to return as array</p>
                                            &mdash; <p>Returns the array value</p>
            <a id="method__objectval" name="method__objectval" class="anchor"></a>
                <h3 class="public ">_objectval()</h3>
                <pre class="signature" style="margin-right: 54px;">_objectval(mixed <span class="argument">$value</span>) : object</pre>
                <p><em>Return object value of SandboxedString or mixed value</em></p>
                                <td>mixed</td>
                                <td>$value</td>
                                <td><p>Value to return as object</p>
                    object
                                            &mdash; <p>Returns the object value</p>

                                                </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method__is_string" name="method__is_string" class="anchor"></a>
            <article class="method">
                <h3 class="public ">_is_string()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">_is_string(mixed <span class="argument">$value</span>) : bool</pre>
                <p><em>Return is_string value of SandboxedString or mixed value</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                                    <tr>
                                <td>mixed</td>
                                <td>$value</td>
                                <td><p>Value to check if is_string</p>
</td>
                            </tr>
                                            </table>
                
                
                                    <h4>Returns</h4>
                    bool
                                            &mdash; <p>Returns the is_string value</p>

                                                </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method__is_object" name="method__is_object" class="anchor"></a>
            <article class="method">
                <h3 class="public ">_is_object()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">_is_object(mixed <span class="argument">$value</span>) : bool</pre>
                <p><em>Return is_object value of SandboxedString or mixed value</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                                    <tr>
                                <td>mixed</td>
                                <td>$value</td>
                                <td><p>Value to check if is_object</p>
</td>
                            </tr>
                                            </table>
                
                
                                    <h4>Returns</h4>
                    bool
                                            &mdash; <p>Returns the is_object value</p>

                                                </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method__is_scalar" name="method__is_scalar" class="anchor"></a>
            <article class="method">
                <h3 class="public ">_is_scalar()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">_is_scalar(mixed <span class="argument">$value</span>) : bool</pre>
                <p><em>Return is_scalar value of SandboxedString or mixed value</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                                    <tr>
                                <td>mixed</td>
                                <td>$value</td>
                                <td><p>Value to check if is_scalar</p>
</td>
                            </tr>
                                            </table>
                
                
                                    <h4>Returns</h4>
                    bool
                                            &mdash; <p>Returns the is_scalar value</p>

                                                </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method__is_callable" name="method__is_callable" class="anchor"></a>
            <article class="method">
                <h3 class="public ">_is_callable()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">_is_callable(mixed <span class="argument">$value</span>) : bool</pre>
                <p><em>Return is_callable value of SandboxedString or mixed value</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                                    <tr>
                                <td>mixed</td>
                                <td>$value</td>
                                <td><p>Value to check if is_callable</p>
</td>
                            </tr>
                                            </table>
                
                
                                    <h4>Returns</h4>
                    bool
                                            &mdash; <p>Returns the is_callable value</p>
                    on March 10th, 2014 at 20:56.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-872821338"></a>
            <div id="namespace-872821338" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-2118974906"></a>
            <div id="namespace-2118974906" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2041490650"></a>
            <div id="namespace-2041490650" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-2075822163"></a>
            <div id="namespace-2075822163" class="accordion-body collapse ">
                                                                    <a href="../classes/PHPSandbox.SandboxedString.html#method_offsetSet" class="">offsetSet()</a><br />
                                                                    <a href="../classes/PHPSandbox.SandboxedString.html#method_offsetGet" class="">offsetGet()</a><br />
                                                                    <a href="../classes/PHPSandbox.SandboxedString.html#method_offsetExists" class="">offsetExists()</a><br />
                                                                    <a href="../classes/PHPSandbox.SandboxedString.html#method_offsetUnset" class="">offsetUnset()</a><br />
                                                                    <a href="../classes/PHPSandbox.SandboxedString.html#method_getIterator" class="">getIterator()</a><br />
                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method_offsetSet" name="method_offsetSet" class="anchor"></a>
            <article class="method">
                <h3 class="public ">offsetSet()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">offsetSet(mixed <span class="argument">$offset</span>, mixed <span class="argument">$value</span>)</pre>
                <p><em>Set string value at specified offset</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                                    <tr>
                                <td>mixed</td>
                                <td>$offset</td>
                                <td><p>Offset to set value</p>
</td>
                            </tr>
                                                    <tr>
                                <td>mixed</td>
                                <td>$value</td>
                                <td><p>Value to set</p>
</td>
                            </tr>
                                            </table>
                
                
                            </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method_offsetGet" name="method_offsetGet" class="anchor"></a>
            <article class="method">
                <h3 class="public ">offsetGet()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">offsetGet(mixed <span class="argument">$offset</span>) : string</pre>
                <p><em>Get string value at specified offset</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                                    <tr>
                                <td>mixed</td>
                                <td>$offset</td>
                                <td><p>Offset to get value</p>
</td>
                            </tr>
                                            </table>
                
                
                                    <h4>Returns</h4>
                    string
                                            &mdash; <p>Value to return</p>

                                                </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method_offsetExists" name="method_offsetExists" class="anchor"></a>
            <article class="method">
                <h3 class="public ">offsetExists()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">offsetExists(mixed <span class="argument">$offset</span>) : bool</pre>
                <p><em>Check if specified offset exists in string value</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                                    <tr>
                                <td>mixed</td>
                                <td>$offset</td>
                                <td><p>Offset to check</p>
</td>
                            </tr>
                                            </table>
                
                
                                    <h4>Returns</h4>
                    bool
                                            &mdash; <p>Return true if offset exists, false otherwise</p>

                                                </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method_offsetUnset" name="method_offsetUnset" class="anchor"></a>
            <article class="method">
                <h3 class="public ">offsetUnset()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">offsetUnset(mixed <span class="argument">$offset</span>)</pre>
                <p><em>Unset string value at specified offset</em></p>
                


                                    <h4>Parameters</h4>
                    <table class="table table-condensed table-hover">
                                                    <tr>
                                <td>mixed</td>
                                <td>$offset</td>
                                <td><p>Offset to unset</p>
</td>
                            </tr>
                                            </table>
                
                
                            </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                                    <div class="row-fluid">
        <div class="span8 content class">
            <a id="method_getIterator" name="method_getIterator" class="anchor"></a>
            <article class="method">
                <h3 class="public ">getIterator()</h3>
                <a href="#source-view" role="button" class="pull-right btn" data-toggle="modal" style="font-size: 1.1em; padding: 9px 14px"><i class="icon-code"></i></a>
                <pre class="signature" style="margin-right: 54px;">getIterator() : \ArrayIterator</pre>
                <p><em>Return iterator for string value</em></p>
                


                
                
                                    <h4>Returns</h4>
                    \ArrayIterator
                                            &mdash; <p>Array iterator to return</p>

                                                </article>
        </div>
        <aside class="span4 detailsbar">
            <h1><i class="icon-arrow-down"></i></h1>
                                                            <dl>
                                                                            </dl>
            <h2>Tags</h2>
            <table class="table table-condensed">
                                    <tr><td colspan="2"><em>None found</em></td></tr>
                            </table>
        </aside>
    </div>

                    on March 10th, 2014 at 20:56.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-761076047"></a>
            <div id="namespace-761076047" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1291512294"></a>
            <div id="namespace-1291512294" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2090806726"></a>
            <div id="namespace-2090806726" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-185668004"></a>
            <div id="namespace-185668004" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-174432776"></a>
            <div id="namespace-174432776" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-7998099"></a>
            <div id="namespace-7998099" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
     * @version 1.3.3
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-101492745"></a>
            <div id="namespace-101492745" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-288228325"></a>
            <div id="namespace-288228325" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
     * @version 1.3.3
        /**
         * @var    array          A static array of var_dump, print_r and var_export, intval, floatval, is_string, is_object,
         *                          is_scalar and is_callable for redefining those functions
         */
        public static $sandboxed_string_funcs = array(
            'var_dump',
            'print_r',
            'var_export',
            'intval',
            'floatval',
            'is_string',
            'is_object',
            'is_scalar',
            'is_callable'
        );
        public $overwrite_sandboxed_string_funcs         = true;
        /**
         * @var    bool       Should PHPSandbox overwrite functions to help hide SandboxedStrings?
         * @default true
         */
        /** Get PHPSandbox redefined function arguments array
         *
         * @param   array           $arguments      Array result from func_get_args() is passed here
         *
         * @return  array           Returns the redefined arguments array
         */
        public function _func_get_args(array $arguments = array()){
            foreach($arguments as $index => $value){
                if($value instanceof self){
                    unset($arguments[$index]); //hide PHPSandbox variable
                }
            }
            return $arguments;
        }
        /** Get PHPSandbox redefined function argument
         *
         * @param   array           $arguments      Array result from func_get_args() is passed here
         *
         * @param   int             $index          Requested func_get_arg index is passed here
         *
         * @return  array           Returns the redefined argument
         */
        public function _func_get_arg(array $arguments = array(), $index = 0){
            if($arguments[$index] instanceof self){
                $index++;   //get next argument instead
            }
            return isset($arguments[$index]) && !($arguments[$index] instanceof self) ? $arguments[$index] : null;
        }
        /** Get PHPSandbox redefined number of function arguments
         *
         * @param   array           $arguments      Array result from func_get_args() is passed here
         *
         * @return  int             Returns the redefined number of function arguments
         */
        public function _func_num_args(array $arguments = array()){
            $count = count($arguments);
            foreach($arguments as $argument){
                if($argument instanceof self){
                    $count--;
                }
            }
            return $count > 0 ? $count : 0;
        }
        /** Wrap output value in SandboxString
         *
         * @param   mixed                   $value      Value to wrap
         *
         * @return  mixed|SandboxedString   Returns the wrapped value
         */
        public function _wrap($value){
            return is_string($value) ? new SandboxedString($value, $this) : $value;
        }
        /** Return integer value of SandboxedString or mixed value
         * @param   mixed           $value      Value to return as integer
         * @return  int             Returns the integer value
        public function _intval($value){
            return intval($value instanceof SandboxedString ? strval($value): $value);
        /** Return float value of SandboxedString or mixed value
         * @param   mixed           $value      Value to return as float
         * @return  float           Returns the float value
         */
        public function _floatval($value){
            return floatval($value instanceof SandboxedString ? strval($value): $value);
        }
        /** Return array value of SandboxedString or mixed value
         * @param   mixed           $value      Value to return as array
         *
         * @return  array           Returns the array value
        public function _arrayval($value){
            if($value instanceof SandboxedString){
                return (array)strval($value);
            return is_array($value) ? $value : (array)$value;
        /** Return object value of SandboxedString or mixed value
         * @param   mixed           $value      Value to return as object
         * @return  object          Returns the object value
        public function _objectval($value){
            if($value instanceof SandboxedString){
                return (object)strval($value);
            return is_object($value) ? $value : (object)$value;
        }
        /** Return is_string value of SandboxedString or mixed value
         *
         * @param   mixed           $value      Value to check if is_string
         *
         * @return  bool            Returns the is_string value
         */
        public function _is_string($value){
            return ($value instanceof SandboxedString) ? true : is_string($value);
        }
        /** Return is_object value of SandboxedString or mixed value
         *
         * @param   mixed           $value      Value to check if is_object
         *
         * @return  bool            Returns the is_object value
         */
        public function _is_object($value){
            return ($value instanceof SandboxedString) ? false : is_object($value);
        }
        /** Return is_scalar value of SandboxedString or mixed value
         *
         * @param   mixed           $value      Value to check if is_scalar
         *
         * @return  bool            Returns the is_scalar value
         */
        public function _is_scalar($value){
            return ($value instanceof SandboxedString) ? true : is_scalar($value);
        }
        /** Return is_callable value of SandboxedString or mixed value
         *
         * @param   mixed           $value      Value to check if is_callable
         *
         * @return  bool            Returns the is_callable value
         */
        public function _is_callable($value){
            if($value instanceof SandboxedString){
                $value = strval($value);
            }
            return is_callable($value);
            } else if($name instanceof SandboxedString){
                $name = strval($name);
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
                "\r\n" . 'if(method_exists($closure, "bindTo")){ $closure = $closure->bindTo(null); }' .
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2011979904"></a>
            <div id="namespace-2011979904" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1143894290"></a>
            <div id="namespace-1143894290" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
     * @version 1.3.3
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1701606012"></a>
            <div id="namespace-1701606012" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1646168305"></a>
            <div id="namespace-1646168305" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
     * @version 1.3.3
    class SandboxedString implements \ArrayAccess, \IteratorAggregate {
         * @param   string      $value          Original string value
         * @param   PHPSandbox  $sandbox        The current sandbox instance to test against
                    || (in_array($name, PHPSandbox::$sandboxed_string_funcs) && $this->sandbox->overwrite_sandboxed_string_funcs)
            return '';
        }
        /** Set string value at specified offset
         * @param   mixed       $offset            Offset to set value
         * @param   mixed       $value             Value to set
         */
        public function offsetSet($offset, $value){
            if($offset === null){
                $this->value .= $value;
            } else {
                $this->value[$offset] = $value;
            }
        }
        /** Get string value at specified offset
         * @param   mixed       $offset            Offset to get value
         *
         * @return  string      Value to return
         */
        public function offsetGet($offset){
            return $this->value[$offset];
        }
        /** Check if specified offset exists in string value
         * @param   mixed       $offset            Offset to check
         *
         * @return  bool        Return true if offset exists, false otherwise
         */
        public function offsetExists($offset){
            return isset($this->value[$offset]);
        }
        /** Unset string value at specified offset
         * @param   mixed       $offset            Offset to unset
         */
        public function offsetUnset($offset){
            unset($this->value[$offset]);
        }
        /** Return iterator for string value
         * @return  \ArrayIterator      Array iterator to return
         */
        public function getIterator(){
            return new \ArrayIterator(str_split(strval($this->value)));
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-999918227"></a>
            <div id="namespace-999918227" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-226640883"></a>
            <div id="namespace-226640883" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
     * @version 1.3.3
            } else if($node instanceof \PHPParser_Node_Expr_Cast_String){
                return new \PHPParser_Node_Expr_New(new \PHPParser_Node_Name_FullyQualified(array('PHPSandbox\\SandboxedString')), array(new \PHPParser_Node_Arg($node->expr), new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))))));
                if($node instanceof \PHPParser_Node_Expr_Cast_Int){
                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_intval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
                } else if($node instanceof \PHPParser_Node_Expr_Cast_Double){
                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_floatval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
                } else if($node instanceof \PHPParser_Node_Expr_Cast_Array){
                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_arrayval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
                } else if($node instanceof \PHPParser_Node_Expr_Cast_Object){
                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_objectval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
                }
                    if($this->sandbox->overwrite_sandboxed_string_funcs && in_array($name, PHPSandbox::$sandboxed_string_funcs)){
                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_wrap', array(new \PHPParser_Node_Arg($node)), $node->getAttributes());
                if($node instanceof \PHPParser_Node_Expr_Concat){
                    return new \PHPParser_Node_Expr_New(new \PHPParser_Node_Name_FullyQualified(array('PHPSandbox\\SandboxedString')), array(new \PHPParser_Node_Arg($node), new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))))));
                } else if($node instanceof \PHPParser_Node_Expr_AssignConcat){
                    return new \PHPParser_Node_Expr_Assign($node->var, new \PHPParser_Node_Expr_New(new \PHPParser_Node_Name_FullyQualified(array('PHPSandbox\\SandboxedString')), array(new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_Concat($node->var, $node->expr)), new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name)))))));
                }
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-1453035608"></a>
            <div id="namespace-1453035608" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-91137763"></a>
            <div id="namespace-91137763" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
     * @version 1.3.3
                    on March 10th, 2014 at 20:56.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-751769504"></a>
            <div id="namespace-751769504" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-1827995365"></a>
            <div id="namespace-1827995365" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2043401959"></a>
            <div id="namespace-2043401959" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-158188391"></a>
            <div id="namespace-158188391" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
                                    <a class="accordion-toggle " data-toggle="collapse" data-target="#namespace-2146406286"></a>
            <div id="namespace-2146406286" class="accordion-body collapse in">
                                    <a class="accordion-toggle collapsed" data-toggle="collapse" data-target="#namespace-44708510"></a>
            <div id="namespace-44708510" class="accordion-body collapse ">
                    on March 10th, 2014 at 20:56.
                    on March 10th, 2014 at 20:56.
                            <small style="float: right;padding-right: 10px;">2</small>
                                        <td>6748</td>
                                        <td>Argument $name is missing from the Docblock of getSandbox()</td>
                                    </tr>
                                                                    <tr>
                                        <td>error</td>
                                        <td>6748</td>
                    on March 10th, 2014 at 20:56.
                    on March 10th, 2014 at 20:56.
     * @version 1.3.3
     * @version 1.3.3
        /**
         * @var    array          A static array of var_dump, print_r and var_export, intval, floatval, is_string, is_object,
         *                          is_scalar and is_callable for redefining those functions
         */
        public static $sandboxed_string_funcs = array(
            'var_dump',
            'print_r',
            'var_export',
            'intval',
            'floatval',
            'is_string',
            'is_object',
            'is_scalar',
            'is_callable'
        );
        public $overwrite_sandboxed_string_funcs         = true;
        /**
         * @var    bool       Should PHPSandbox overwrite functions to help hide SandboxedStrings?
         * @default true
         */
        /** Get PHPSandbox redefined function arguments array
         *
         * @param   array           $arguments      Array result from func_get_args() is passed here
         *
         * @return  array           Returns the redefined arguments array
         */
        public function _func_get_args(array $arguments = array()){
            foreach($arguments as $index => $value){
                if($value instanceof self){
                    unset($arguments[$index]); //hide PHPSandbox variable
                }
            }
            return $arguments;
        }
        /** Get PHPSandbox redefined function argument
         *
         * @param   array           $arguments      Array result from func_get_args() is passed here
         *
         * @param   int             $index          Requested func_get_arg index is passed here
         *
         * @return  array           Returns the redefined argument
         */
        public function _func_get_arg(array $arguments = array(), $index = 0){
            if($arguments[$index] instanceof self){
                $index++;   //get next argument instead
            }
            return isset($arguments[$index]) && !($arguments[$index] instanceof self) ? $arguments[$index] : null;
        }
        /** Get PHPSandbox redefined number of function arguments
         *
         * @param   array           $arguments      Array result from func_get_args() is passed here
         *
         * @return  int             Returns the redefined number of function arguments
         */
        public function _func_num_args(array $arguments = array()){
            $count = count($arguments);
            foreach($arguments as $argument){
                if($argument instanceof self){
                    $count--;
                }
            }
            return $count > 0 ? $count : 0;
        }
        /** Wrap output value in SandboxString
         *
         * @param   mixed                   $value      Value to wrap
         *
         * @return  mixed|SandboxedString   Returns the wrapped value
         */
        public function _wrap($value){
            return is_string($value) ? new SandboxedString($value, $this) : $value;
        }
        /** Return integer value of SandboxedString or mixed value
         * @param   mixed           $value      Value to return as integer
         * @return  int             Returns the integer value
        public function _intval($value){
            return intval($value instanceof SandboxedString ? strval($value): $value);
        /** Return float value of SandboxedString or mixed value
         * @param   mixed           $value      Value to return as float
         * @return  float           Returns the float value
         */
        public function _floatval($value){
            return floatval($value instanceof SandboxedString ? strval($value): $value);
        }
        /** Return array value of SandboxedString or mixed value
         * @param   mixed           $value      Value to return as array
         *
         * @return  array           Returns the array value
        public function _arrayval($value){
            if($value instanceof SandboxedString){
                return (array)strval($value);
            return is_array($value) ? $value : (array)$value;
        /** Return object value of SandboxedString or mixed value
         * @param   mixed           $value      Value to return as object
         * @return  object          Returns the object value
        public function _objectval($value){
            if($value instanceof SandboxedString){
                return (object)strval($value);
            return is_object($value) ? $value : (object)$value;
        }
        /** Return is_string value of SandboxedString or mixed value
         *
         * @param   mixed           $value      Value to check if is_string
         *
         * @return  bool            Returns the is_string value
         */
        public function _is_string($value){
            return ($value instanceof SandboxedString) ? true : is_string($value);
        }
        /** Return is_object value of SandboxedString or mixed value
         *
         * @param   mixed           $value      Value to check if is_object
         *
         * @return  bool            Returns the is_object value
         */
        public function _is_object($value){
            return ($value instanceof SandboxedString) ? false : is_object($value);
        }
        /** Return is_scalar value of SandboxedString or mixed value
         *
         * @param   mixed           $value      Value to check if is_scalar
         *
         * @return  bool            Returns the is_scalar value
         */
        public function _is_scalar($value){
            return ($value instanceof SandboxedString) ? true : is_scalar($value);
        }
        /** Return is_callable value of SandboxedString or mixed value
         *
         * @param   mixed           $value      Value to check if is_callable
         *
         * @return  bool            Returns the is_callable value
         */
        public function _is_callable($value){
            if($value instanceof SandboxedString){
                $value = strval($value);
            }
            return is_callable($value);
            } else if($name instanceof SandboxedString){
                $name = strval($name);
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
            if($name instanceof SandboxedString){
                $name = strval($name);
            }
                "\r\n" . 'if(method_exists($closure, "bindTo")){ $closure = $closure->bindTo(null); }' .
     * @version 1.3.3
     * @version 1.3.3
    class SandboxedString implements \ArrayAccess, \IteratorAggregate {
         * @param   string      $value          Original string value
         * @param   PHPSandbox  $sandbox        The current sandbox instance to test against
                    || (in_array($name, PHPSandbox::$sandboxed_string_funcs) && $this->sandbox->overwrite_sandboxed_string_funcs)
            return '';
        }
        /** Set string value at specified offset
         * @param   mixed       $offset            Offset to set value
         * @param   mixed       $value             Value to set
         */
        public function offsetSet($offset, $value){
            if($offset === null){
                $this->value .= $value;
            } else {
                $this->value[$offset] = $value;
            }
        }
        /** Get string value at specified offset
         * @param   mixed       $offset            Offset to get value
         *
         * @return  string      Value to return
         */
        public function offsetGet($offset){
            return $this->value[$offset];
        }
        /** Check if specified offset exists in string value
         * @param   mixed       $offset            Offset to check
         *
         * @return  bool        Return true if offset exists, false otherwise
         */
        public function offsetExists($offset){
            return isset($this->value[$offset]);
        }
        /** Unset string value at specified offset
         * @param   mixed       $offset            Offset to unset
         */
        public function offsetUnset($offset){
            unset($this->value[$offset]);
        }
        /** Return iterator for string value
         * @return  \ArrayIterator      Array iterator to return
         */
        public function getIterator(){
            return new \ArrayIterator(str_split(strval($this->value)));
     * @version 1.3.3
            } else if($node instanceof \PHPParser_Node_Expr_Cast_String){
                return new \PHPParser_Node_Expr_New(new \PHPParser_Node_Name_FullyQualified(array('PHPSandbox\\SandboxedString')), array(new \PHPParser_Node_Arg($node->expr), new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))))));
                if($node instanceof \PHPParser_Node_Expr_Cast_Int){
                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_intval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
                } else if($node instanceof \PHPParser_Node_Expr_Cast_Double){
                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_floatval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
                } else if($node instanceof \PHPParser_Node_Expr_Cast_Array){
                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_arrayval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
                } else if($node instanceof \PHPParser_Node_Expr_Cast_Object){
                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_objectval', array(new \PHPParser_Node_Arg($node->expr)), $node->getAttributes());
                }
                    if($this->sandbox->overwrite_sandboxed_string_funcs && in_array($name, PHPSandbox::$sandboxed_string_funcs)){
                    return new \PHPParser_Node_Expr_MethodCall(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))), '_wrap', array(new \PHPParser_Node_Arg($node)), $node->getAttributes());
                if($node instanceof \PHPParser_Node_Expr_Concat){
                    return new \PHPParser_Node_Expr_New(new \PHPParser_Node_Name_FullyQualified(array('PHPSandbox\\SandboxedString')), array(new \PHPParser_Node_Arg($node), new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name))))));
                } else if($node instanceof \PHPParser_Node_Expr_AssignConcat){
                    return new \PHPParser_Node_Expr_Assign($node->var, new \PHPParser_Node_Expr_New(new \PHPParser_Node_Name_FullyQualified(array('PHPSandbox\\SandboxedString')), array(new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_Concat($node->var, $node->expr)), new \PHPParser_Node_Arg(new \PHPParser_Node_Expr_StaticCall(new \PHPParser_Node_Name_FullyQualified("PHPSandbox\\PHPSandbox"), 'getSandbox', array(new \PHPParser_Node_Scalar_String($this->sandbox->name)))))));
                }
     * @version 1.3.3

        /**
         * Test whether sandbox disallows violating callbacks even with manipulated sandboxed strings
         */
        public function testCallbackViolationsWithStringManipulation(){
            $this->setExpectedException('PHPSandbox\Error');
            $this->sandbox->execute(function(){ $x = substr("var_dump2", 0, -1); array_filter(array("1"), $x); });
        }

        /**
         * Test whether sandboxed strings do not cause conflicts with intval
         */
        public function testSandboxedStringsSatisfyIntval(){
            $this->sandbox->whitelist_func('intval');
            $this->assertEquals(1, $this->sandbox->execute(function(){ return intval("1"); }));
        }

        /**
         * Test whether sandboxed strings do not cause conflicts with is_string, is_object, or is_scalar
         */
        public function testSandboxedStringsMimicStrings(){
            $this->sandbox->whitelist_func(array(
                'is_string',
                'is_object',
                'is_scalar'
            ));
            $this->assertEquals(true, $this->sandbox->execute(function(){ return is_string("1"); }));
            $this->assertEquals(false, $this->sandbox->execute(function(){ return is_object("1"); }));
            $this->assertEquals(true, $this->sandbox->execute(function(){ return is_scalar("1"); }));
        }
        $sandbox->set_error_handler(function(\PHPSandbox\Error $e){ die('<h2 style="color: red;">' . $e->getMessage() . '</h2>'); });
            die('<h2 style="color: red;">' . $e->getMessage() . '</h2>');
    <div align="center" style="font-size: 8px; font-weight: bold;">&copy; Copyright 2013 - <?php echo date("Y"); ?> Elijah Horton. - Some Rights Reserved.<br/>See <a href="../LICENSE" target="_blank">LICENSE</a> for details.</div>
    <br/>
{"code":"\/*\n    This template demonstrates how an eval is blocked\n    if the eval function is not allowed\n*\/\n\neval('echo \"This should not work if eval is disallowed.\";');","options":{"allow_variables":"0"},"blacklist":null,"whitelist":null}