$name ) ) { return $this->$name; } $data = (array)$this; // Protected variables have a '*' prepended to the variable name. // These prepended values have null bytes on either side. $protectedName = "\x00*\x00{$name}"; if ( isset( $data[$protectedName] ) ) { return $data[$protectedName]; } // Private variables have the class name prepended to the variable name. // These prepended values have null bytes on either side. $thisClass = get_class( $this ); $privateName = "\x00{$thisClass}\x00{$name}"; if ( isset( $data[$privateName] ) ) { return $data[$privateName]; } return null; } }