Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
An Introduction to PHP ... And Why It's Yucky!
Search
Jorge Silva
November 13, 2014
Technology
230
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
310
ForwardJS - RethinkDB - Getting Started
thejsj
0
250
ForwardJS - RethinkDB - Advanced Queries
thejsj
1
240
Automatic Failover in RethinkDB
thejsj
0
280
Workshop: Introduction to RethinkDB : Santa Cruz JS
thejsj
1
180
Push databases: A better way to build realtime apps
thejsj
0
160
Data Modeling in RethinkDB
thejsj
4
310
RethinkDB+Angular.js: Building realtime web applications
thejsj
10
30k
Introduction to RethinkDB: 1KE Meetup
thejsj
0
92
Other Decks in Technology
See All in Technology
Jetson Orin Nanoとk3sとローカルLLMで音声文字起こしシステム作ってみた
y_sera15
0
100
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.2k
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
120
自分で立ててみるLLMサービス
y_sera15
0
150
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
6
5.6k
SREでアラート疲れを 解決しよう!
kairim0
1
220
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1.2k
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
1.1k
転んだ話が背中を預ける理由になる / A_story_about_falling_down_gives_you_a_reason_to_watch_each_other_s_backs.pdf
pauli
3
350
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
0
270
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.5k
生成AIで高い生産性を求められて、 悩み、乗り越えた話
mot_techtalk
2
150
Featured
See All Featured
Crafting Experiences
bethany
1
380
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
770
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Navigating Team Friction
lara
192
16k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.3k
Test your architecture with Archunit
thirion
2
2.4k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
720
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
320
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;