Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Reference Passing in PHP
Search
Tamal Saha
March 05, 2017
Programming
130
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Reference Passing in PHP
Tamal Saha
March 05, 2017
More Decks by Tamal Saha
See All by Tamal Saha
Kubernetes application packaging from first principles
tamalsaha
0
8.2k
OverHelmed: Experience of a Helm chart publisher and consumer
tamalsaha
2
1.8k
Other Decks in Programming
See All in Programming
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
140
スマートグラスで並列バイブコーディング
hyshu
0
250
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
900
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
120
AI 輔助遺留系統現代化的經驗分享
jame2408
1
940
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
560
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.5k
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
350
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
210
ふつうのFeature Flag実践入門
irof
8
4.1k
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
5.7k
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
550
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
750
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Ruling the World: When Life Gets Gamed
codingconduct
0
260
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
Google's AI Overviews - The New Search
badams
0
1k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
480
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
320
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Transcript
Reference Passing in PHP Tamal Saha
Pass Scalar Types by Reference
Pass Scalar Types by Reference 5 5 <?php $instance =
5; $assigned = $instance; $referenced =& $instance; $instance $assigned $referenced
Pass Scalar Types by Reference 10 5 <?php $instance =
5; $assigned = $instance; $referenced =& $instance; $instance = 10; $instance $assigned $referenced
Pass Scalar Types by Reference null 5 <?php $instance =
5; $assigned = $instance; $referenced =& $instance; $instance = 10; $instance = null; $instance $assigned $referenced
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
Pass Objects by Reference
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
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
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
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
Pass Array by Reference
Pass Array by Reference [0] = 1 [1] = 2
[0] = 1 [1] = 2 <?php $instance = array(1, 2); $assigned = $instance; $referenced =& $instance; $instance $assigned $referenced
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
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
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
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
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