Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Reference Passing in PHP

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

Reference Passing in PHP

Avatar for Tamal Saha

Tamal Saha

March 05, 2017

More Decks by Tamal Saha

Other Decks in Programming

Transcript

  1. Pass Scalar Types by Reference 5 5 <?php $instance =

    5; $assigned = $instance; $referenced =& $instance; $instance $assigned $referenced
  2. Pass Scalar Types by Reference 10 5 <?php $instance =

    5; $assigned = $instance; $referenced =& $instance; $instance = 10; $instance $assigned $referenced
  3. Pass Scalar Types by Reference null 5 <?php $instance =

    5; $assigned = $instance; $referenced =& $instance; $instance = 10; $instance = null; $instance $assigned $referenced
  4. Pass Scalar Types by Reference null 5 <?php $instance =

    5; $assigned = $instance; $referenced =& $instance; $instance = 10; $instance = null; echo '$instance = '; var_dump($instance); echo "\n", '$assigned = '; var_dump($assigned); echo "\n", '$referenced = '; var_dump($referenced); $instance $assigned $referenced
  5. Pass Objects by Reference obj-id obj-id <?php class SimpleClass {

    public $deviceToken = 'original'; } $instance = new SimpleClass(); $assigned = $instance; $referenced =& $instance; $instance $assigned $referenced deviceToken: original
  6. Pass Objects by Reference obj-id obj-id <?php class SimpleClass {

    public $deviceToken = 'original'; } $instance = new SimpleClass(); $assigned = $instance; $referenced =& $instance; $instance->deviceToken = 'modified'; $instance $assigned $referenced deviceToken: modified
  7. Pass Objects by Reference null obj-id <?php class SimpleClass {

    public $deviceToken = 'original'; } $instance = new SimpleClass(); $assigned = $instance; $referenced =& $instance; $instance->deviceToken = 'modified'; $instance = null; $instance $assigned $referenced deviceToken: modified
  8. Pass Objects by Reference null obj-id <?php class SimpleClass {

    public $deviceToken = 'original'; } $instance = new SimpleClass(); $assigned = $instance; $referenced =& $instance; $instance->deviceToken = 'modified'; $instance = null; echo '$instance = '; var_dump($instance); echo "\n", '$assigned = '; var_dump($assigned); echo "\n", '$referenced = '; var_dump($referenced); $instance $assigned $referenced deviceToken: modified
  9. Pass Array by Reference [0] = 1 [1] = 2

    [0] = 1 [1] = 2 <?php $instance = array(1, 2); $assigned = $instance; $referenced =& $instance; $instance $assigned $referenced
  10. Pass Array by Reference [0] = 6 [1] = 2

    [0] = 1 [1] = 2 <?php $instance = array(1, 2); $assigned = $instance; $referenced =& $instance; $instance[0] = 6; $instance $assigned $referenced
  11. Pass Array by Reference [0] = 6 [1] = 2

    [2] = 3 [0] = 1 [1] = 2 <?php $instance = array(1, 2); $assigned = $instance; $referenced =& $instance; $instance[0] = 6; array_push($instance, 3); $instance $assigned $referenced
  12. Pass Array by Reference null null null [0] = 1

    [1] = 2 <?php $instance = array(1, 2); $assigned = $instance; $referenced =& $instance; $instance[0] = 6; array_push($instance, 3); $instance = null; $instance $assigned $referenced
  13. Pass Array by Reference null null null [0] = 1

    [1] = 2 <?php $instance = array(1, 2); $assigned = $instance; $referenced =& $instance; $instance[0] = 6; array_push($instance, 3); $instance = null; $instance $assigned $referenced
  14. Pass Array by Reference null null null [0] = 1

    [1] = 2 <?php $instance = array(1, 2); $assigned = $instance; $referenced =& $instance; $instance[0] = 6; array_push($instance, 3); $instance = null; echo "\n", '$instance = '; var_dump($instance); echo "\n", '$assigned = '; var_dump($assigned); echo "\n", '$referenced = '; var_dump($referenced); $instance $assigned $referenced