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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Jorge Silva
November 13, 2014
Technology
220
1
Share
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
More Decks by Jorge Silva
See All by Jorge Silva
Introduction to RethinkDB : Move fast and break things
thejsj
2
290
ForwardJS - RethinkDB - Getting Started
thejsj
0
230
ForwardJS - RethinkDB - Advanced Queries
thejsj
1
230
Automatic Failover in RethinkDB
thejsj
0
260
Workshop: Introduction to RethinkDB : Santa Cruz JS
thejsj
1
150
Push databases: A better way to build realtime apps
thejsj
0
150
Data Modeling in RethinkDB
thejsj
4
290
RethinkDB+Angular.js: Building realtime web applications
thejsj
10
30k
Introduction to RethinkDB: 1KE Meetup
thejsj
0
74
Other Decks in Technology
See All in Technology
Discordでリモートポケカしてたら、なぜかDOを25分間動かせるようになった話
umireon
0
120
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
16k
終盤で崩壊させないAI駆動開発
j5ik2o
0
480
AgentCore RuntimeからS3 Filesをマウントしてみる
har1101
3
400
AIがコードを書く時代の ジェネレーティブプログラミング
polidog
PRO
3
670
生成AI時代のエンジニア育成 変わる時代と変わらないコト
starfish719
0
580
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
DevOpsDays Tokyo 2026 見えない開発現場を、見える投資に変える
rojoudotcom
2
160
システムは「動く」だけでは 足りない - 非機能要件・分散システム・トレードオフの基礎
nwiizo
25
8.2k
今年60歳のおっさんCBになる
kentapapa
1
370
プロダクトを触って語って理解する、チーム横断バグバッシュのすすめ / 20260411 Naoki Takahashi
shift_evolve
PRO
1
270
Featured
See All Featured
Building AI with AI
inesmontani
PRO
1
870
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
260
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
170
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
260
Raft: Consensus for Rubyists
vanstee
141
7.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
The Pragmatic Product Professional
lauravandoore
37
7.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
エンジニアに許された特別な時間の終わり
watany
106
240k
Building Applications with DynamoDB
mza
96
7k
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;