Content · Web Development · PHP

PHP get_mangled_object_vars() Function: Usage and Examples

PHP get_mangled_object_vars() Function: Usage and Examples: Returns all non-static properties of an object in an associative array, encoding protected and private property names with NUL-delimited scope prefixes.

1 views Published Oct 17, 2026 Updated Oct 17, 2026 admin

The feature illustrated below operates on PHP values, objects, or language metadata.

What Is get_mangled_object_vars in PHP?


Returns all non-static properties of an object in an associative array, encoding protected and private property names with NUL-delimited scope prefixes.

get_mangled_object_vars(object $object) : array

Parameters:

  • $object — Required. The object being inspected or initialized.

Return type: array. Private and protected names contain NUL bytes and are not ordinary identifiers.

Example 1: Understanding the Basic Behavior


<?php

class Account { public string $name = 'Alex'; protected int $balance = 40; private string $secret = 'hidden'; }
$propertyKeys = array_keys(get_mangled_object_vars(new Account()));
foreach ($propertyKeys as $propertyKey) { echo str_replace("\0", "[NUL]", $propertyKey) . "\n"; }

Output:

name
[NUL]*[NUL]balance
[NUL]Account[NUL]secret

Explanation: Returns all non-static properties of an object in an associative array, encoding protected and private property names with NUL-delimited scope prefixes.

Example 2: Testing Another Case


<?php

class Item { public int $id = 4; private string $code = 'A'; }
foreach (get_mangled_object_vars(new Item()) as $key => $value) { echo strlen($key) . '\n'; }

Output:

2\n10\n

Explanation: Private and protected names contain NUL bytes and are not ordinary identifiers.

Practical Example: Applying the Operation


<?php

class Task { private bool $finished = false; public string $title = 'Review'; }
$allProperties = get_mangled_object_vars(new Task());
echo count($allProperties);

Output:

2

Explanation: Avoid sending hidden property data directly to API clients or logs.

Important Behavior and Edge Cases


  • Private and protected names contain NUL bytes and are not ordinary identifiers.
  • Avoid sending hidden property data directly to API clients or logs.

Comparison With Related Approaches


ApproachWhen to Use It
get_mangled_object_varsReturns all non-static properties of an object in an associative array, encoding protected and private property names with NUL-delimited scope prefixes.
get_object_vars()get_object_vars() exposes only properties visible from the calling scope; get_mangled_object_vars() includes scope-mangled hidden properties.

Common Beginner Mistakes


MistakeCorrect Approach
Using the returned mangled private or protected keys as ordinary public property names.Private and protected names contain NUL bytes and are not ordinary identifiers.
Choosing get_object_vars() without checking whether it provides the same result.get_object_vars() exposes only properties visible from the calling scope; get_mangled_object_vars() includes scope-mangled hidden properties.

Key Takeaways


  • Returns all non-static properties of an object in an associative array, encoding protected and private property names with NUL-delimited scope prefixes.
  • Private and protected names contain NUL bytes and are not ordinary identifiers.
  • Avoid sending hidden property data directly to API clients or logs.

The examples demonstrate where get_mangled_object_vars fits within php programming. Verify the relevant preconditions whenever you adapt the code to real data.

Share this resourceSend this page to someone who may find it useful.