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
An Introduction to PHP ... And Why It's Yucky!
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Jorge Silva
November 13, 2014
Technology
1
210
An Introduction to PHP ... And Why It's Yucky!
A short introduction to some of the good parts and bad parts of PHP. Mostly the bad parts.
Jorge Silva
November 13, 2014
Tweet
Share
More Decks by Jorge Silva
See All by Jorge Silva
Introduction to RethinkDB : Move fast and break things
thejsj
2
280
ForwardJS - RethinkDB - Getting Started
thejsj
0
220
ForwardJS - RethinkDB - Advanced Queries
thejsj
1
230
Automatic Failover in RethinkDB
thejsj
0
250
Workshop: Introduction to RethinkDB : Santa Cruz JS
thejsj
1
150
Push databases: A better way to build realtime apps
thejsj
0
140
Data Modeling in RethinkDB
thejsj
4
280
RethinkDB+Angular.js: Building realtime web applications
thejsj
10
30k
Introduction to RethinkDB: 1KE Meetup
thejsj
0
65
Other Decks in Technology
See All in Technology
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
210
Context Engineeringの取り組み
nutslove
0
370
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
110
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
260
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
120
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
190
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.6k
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
210
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
250
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
Featured
See All Featured
We Are The Robots
honzajavorek
0
170
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
740
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
220
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
94
WCS-LA-2024
lcolladotor
0
450
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Transcript
<?php ?> echo `An introduction to PHP`;
<?php ?> echo `An introduction to PHP`; echo `7 reasons
why it’s yucky`;
<?php ?> echo `First, the good parts`; var_dump([ `Web’s most
popular server lang`, `Incredibly easy to deploy`, `WordPress, uber popular framework`, `Templating is built-in` ]);
<?php ?> echo `Problem #1`; echo `Templating is built-in`; foreach($arr
as $el) { echo `<p>`; echo doSomeMysteriousThing($el); echo `</p>`; }
<?php ?> echo `Problem #2`; echo `It can be very
inconsistent`; echo 'hello \nworld'; // hello \nworld echo "hello \nworld"; // hello // world
<?php ?> echo `Problem #3`; echo `Everything is a function!!!`;
array_push($arr, `abc`); // 5.3 array_key_exists($arr, `abc`); // bool $r = array_merge($arr, [`abc`]); $r = array_map(`func`, $arr); $r = count($arr);
<?php ?> echo `Problem #4`; echo `Equality is unequal`; `6`
== ` 6` // true `133` == `0133` && 133 != 0133; // true `foo` == 0 && `foo` == true; // true NULL < -1 && NULL == 0; // true
<?php ?> echo `Problem #5`; echo `Scope is weird...`; if
(1 === 1) { $v = `if`; } function a() { $v = `a`; } function b() { global $v; $v = `b`; } a(); echo $v; // `if` b(); echo $v; // `b`
<?php ?> echo `Problem #6`; echo `Debugging is terrible!`; echo
$arr; // `Array` print_r($arr); // Array ( [0] => 1 [1] var_dump($arr); // array(4) { [0]=> int( var_dump(debug_backtrace());
<?php ?> echo `Problem #7`; echo `Documentation is terrible`; echo
($documentation == $forum); // 1
<?php ?> echo `In the end...`;
<?php ?> echo `In the end...`; echo `...it doesn’t matter
that much`; $u = `http://blog.codinghorror.com/`; $u .= `php-sucks-but-it-doesnt-matter`; echo $u;