Skip to content

Instantly share code, notes, and snippets.

@mdawaffe
Created October 16, 2014 12:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mdawaffe/a32e2a6988755cd37d8c to your computer and use it in GitHub Desktop.
Save mdawaffe/a32e2a6988755cd37d8c to your computer and use it in GitHub Desktop.
Behavior of Various Ways to Loop over a PHP Object with Private/Protected Properties
<?php
class A {
protected $protected = 'protected';
private $private = 'private';
public $public = 'public';
function loop_array() {
foreach ( (array) $this as $key => $value ) {
var_export( "$key => $value" );
echo "\n";
}
}
function loop_object() {
foreach ( $this as $key => $value ) {
var_export( "$key => $value" );
echo "\n";
}
}
function loop_object_vars() {
foreach ( get_object_vars( $this ) as $key => $value ) {
var_export( "$key => $value" );
echo "\n";
}
}
}
$a = new A;
echo "External Array Loop\n";
foreach ( (array) $a as $key => $value ) {
var_export( "$key => $value" );
echo "\n";
}
echo "\n";
echo "External Object Loop\n";
foreach ( $a as $key => $value ) {
var_export( "$key => $value" );
echo "\n";
}
echo "\n";
echo "External Object_Vars Loop\n";
foreach ( get_object_vars( $a ) as $key => $value ) {
var_export( "$key => $value" );
echo "\n";
}
echo "\n";
echo "Internal Array Loop\n";
$a->loop_array();
echo "\n";
echo "Internal Object Loop\n";
$a->loop_object();
echo "\n";
echo "Internal Object_Vars Loop\n";
$a->loop_object_vars();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment