<?php
function my_var_export($var, $text = '...', $output_type = TRUE) {
}
return $text . ($output_type ?
' (' . gettype($var) . ')' : '') . ':'. PHP_EOL
}
$myObject = new stdClass();
$myObject->foo = 'bar';
$myObject->asd = 'blabla';
$copyObject = $myObject;
echo my_var_export($myObject, '$myObject');
echo my_var_export($copyObject, '$copyObject');
function stuff($anObject){
$anObject->foo = 'asdasd';
}
stuff($copyObject);
echo my_var_export($myObject, '$myObject after calling stuff()');
echo my_var_export($copyObject, '$copyObject after calling stuff()');
$copyObject->foo = 'bizbaz';
echo my_var_export($myObject, '$myObject after $copyObject->foo = "bizbaz"');
echo my_var_export($copyObject, '$copyObject after $copyObject->foo = "bizbaz"');
$copyObject->anotherfoo = 'háblüháblü';
echo my_var_export($myObject, '$myObject after $copyObject->foo = "bizbaz"');
echo my_var_export($copyObject, '$copyObject after $copyObject->foo = "bizbaz"');
$copyObject2 = clone $copyObject;
$copyObject2->anotherfoo = 'hiblihubli';
echo my_var_export($copyObject, '$copyObject after cloning');
echo my_var_export($copyObject2, '$copyObject2 after cloning');
echo '_________________________________________________________________________'.PHP_EOL;
$array = array('asd', 'foo', 'bla'); echo my_var_export($array, '$array');
function arrayMod($arr){
$arr[0] = 'qweqwe';
}
arrayMod($array);
echo my_var_export($array, '$array after calling arrayMod()');
function arrayModRef(&$arr){
$arr[0] = 'qweqwe';
}
arrayModRef($array);
echo my_var_export($array, '$array after calling arrayModRef()');
PD9waHAKCmZ1bmN0aW9uIG15X3Zhcl9leHBvcnQoJHZhciwgJHRleHQgPSAnLi4uJywgJG91dHB1dF90eXBlID0gVFJVRSkgewogICAgCiAgaWYgKGdldHR5cGUoJHZhcikgPT09ICdzdHJpbmcnKSB7CiAgICAkdmFyID0gaHRtbGVudGl0aWVzKCR2YXIpOwogIH0KICByZXR1cm4gJHRleHQgLiAoJG91dHB1dF90eXBlID8gJyAoJyAuIGdldHR5cGUoJHZhcikgLiAnKScgOiAnJykgLiAnOicuIFBIUF9FT0wKICAgICAgICAgIC4gdmFyX2V4cG9ydCgkdmFyLCBUUlVFKSAuIFBIUF9FT0wgLiBQSFBfRU9MOwp9CgoKJG15T2JqZWN0ID0gbmV3IHN0ZENsYXNzKCk7CiRteU9iamVjdC0+Zm9vID0gJ2Jhcic7CiRteU9iamVjdC0+YXNkID0gJ2JsYWJsYSc7CiRjb3B5T2JqZWN0ID0gJG15T2JqZWN0OwoKZWNobyBteV92YXJfZXhwb3J0KCRteU9iamVjdCwgJyRteU9iamVjdCcpOwplY2hvIG15X3Zhcl9leHBvcnQoJGNvcHlPYmplY3QsICckY29weU9iamVjdCcpOwoKZnVuY3Rpb24gc3R1ZmYoJGFuT2JqZWN0KXsKICAkYW5PYmplY3QtPmZvbyA9ICdhc2Rhc2QnOwp9CgpzdHVmZigkY29weU9iamVjdCk7CmVjaG8gbXlfdmFyX2V4cG9ydCgkbXlPYmplY3QsICckbXlPYmplY3QgYWZ0ZXIgY2FsbGluZyBzdHVmZigpJyk7CmVjaG8gbXlfdmFyX2V4cG9ydCgkY29weU9iamVjdCwgJyRjb3B5T2JqZWN0IGFmdGVyIGNhbGxpbmcgc3R1ZmYoKScpOwoKJGNvcHlPYmplY3QtPmZvbyA9ICdiaXpiYXonOwoKZWNobyBteV92YXJfZXhwb3J0KCRteU9iamVjdCwgJyRteU9iamVjdCBhZnRlciAkY29weU9iamVjdC0+Zm9vID0gImJpemJheiInKTsKZWNobyBteV92YXJfZXhwb3J0KCRjb3B5T2JqZWN0LCAnJGNvcHlPYmplY3QgYWZ0ZXIgJGNvcHlPYmplY3QtPmZvbyA9ICJiaXpiYXoiJyk7CgokY29weU9iamVjdC0+YW5vdGhlcmZvbyA9ICdow6FibMO8aMOhYmzDvCc7CmVjaG8gbXlfdmFyX2V4cG9ydCgkbXlPYmplY3QsICckbXlPYmplY3QgYWZ0ZXIgJGNvcHlPYmplY3QtPmZvbyA9ICJiaXpiYXoiJyk7CmVjaG8gbXlfdmFyX2V4cG9ydCgkY29weU9iamVjdCwgJyRjb3B5T2JqZWN0IGFmdGVyICRjb3B5T2JqZWN0LT5mb28gPSAiYml6YmF6IicpOwoKJGNvcHlPYmplY3QyID0gY2xvbmUgJGNvcHlPYmplY3Q7CiRjb3B5T2JqZWN0Mi0+YW5vdGhlcmZvbyA9ICdoaWJsaWh1YmxpJzsKCmVjaG8gbXlfdmFyX2V4cG9ydCgkY29weU9iamVjdCwgJyRjb3B5T2JqZWN0IGFmdGVyIGNsb25pbmcnKTsKZWNobyBteV92YXJfZXhwb3J0KCRjb3B5T2JqZWN0MiwgJyRjb3B5T2JqZWN0MiBhZnRlciBjbG9uaW5nJyk7CgplY2hvICdfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fJy5QSFBfRU9MOwoKJGFycmF5ID0gYXJyYXkoJ2FzZCcsICdmb28nLCAnYmxhJyk7CmVjaG8gbXlfdmFyX2V4cG9ydCgkYXJyYXksICckYXJyYXknKTsKCmZ1bmN0aW9uIGFycmF5TW9kKCRhcnIpewogICRhcnJbMF0gPSAncXdlcXdlJzsKfQoKYXJyYXlNb2QoJGFycmF5KTsKZWNobyBteV92YXJfZXhwb3J0KCRhcnJheSwgJyRhcnJheSBhZnRlciBjYWxsaW5nIGFycmF5TW9kKCknKTsKCmZ1bmN0aW9uIGFycmF5TW9kUmVmKCYkYXJyKXsKICAkYXJyWzBdID0gJ3F3ZXF3ZSc7Cn0KCmFycmF5TW9kUmVmKCRhcnJheSk7CmVjaG8gbXlfdmFyX2V4cG9ydCgkYXJyYXksICckYXJyYXkgYWZ0ZXIgY2FsbGluZyBhcnJheU1vZFJlZigpJyk7Cg==
$myObject (object):
stdClass::__set_state(array(
'foo' => 'bar',
'asd' => 'blabla',
))
$copyObject (object):
stdClass::__set_state(array(
'foo' => 'bar',
'asd' => 'blabla',
))
$myObject after calling stuff() (object):
stdClass::__set_state(array(
'foo' => 'asdasd',
'asd' => 'blabla',
))
$copyObject after calling stuff() (object):
stdClass::__set_state(array(
'foo' => 'asdasd',
'asd' => 'blabla',
))
$myObject after $copyObject->foo = "bizbaz" (object):
stdClass::__set_state(array(
'foo' => 'bizbaz',
'asd' => 'blabla',
))
$copyObject after $copyObject->foo = "bizbaz" (object):
stdClass::__set_state(array(
'foo' => 'bizbaz',
'asd' => 'blabla',
))
$myObject after $copyObject->foo = "bizbaz" (object):
stdClass::__set_state(array(
'foo' => 'bizbaz',
'asd' => 'blabla',
'anotherfoo' => 'háblüháblü',
))
$copyObject after $copyObject->foo = "bizbaz" (object):
stdClass::__set_state(array(
'foo' => 'bizbaz',
'asd' => 'blabla',
'anotherfoo' => 'háblüháblü',
))
$copyObject after cloning (object):
stdClass::__set_state(array(
'foo' => 'bizbaz',
'asd' => 'blabla',
'anotherfoo' => 'háblüháblü',
))
$copyObject2 after cloning (object):
stdClass::__set_state(array(
'foo' => 'bizbaz',
'asd' => 'blabla',
'anotherfoo' => 'hiblihubli',
))
_________________________________________________________________________
$array (array):
array (
0 => 'asd',
1 => 'foo',
2 => 'bla',
)
$array after calling arrayMod() (array):
array (
0 => 'asd',
1 => 'foo',
2 => 'bla',
)
$array after calling arrayModRef() (array):
array (
0 => 'qweqwe',
1 => 'foo',
2 => 'bla',
)