PHP

백괴사전, 너희 모두의 백과사전
둘러보기로 가기 검색하러 가기
Dsc 1576.png 컴덕후가 쓴 글
이 글은 컴덕 또는 컴퓨터 중독자가 쓴 글이거나 컴덕을 소개하는 글입니다. 이 글을 읽다 보면 당신의 뇌가 PHP에 세뇌당할 sudo 있으니 알아서 조심하시기 바랍니다.
Linux-head.jpg
Bouncywikilogo small.gif
위키백과의 다음 문서를 참조하지 않으면 는 아오지 탄광에 끌려가 Dynamic 로동을 해야 한다.
PHP

“expected T_PAAMAYIM_NEKUDOTAYIM”

PHP, 마법의 주문을 걸며

PHP(PHP is Hyper Pasta, 핀란드어: Perkele Helvetti Perkele)는 프로그래머를 백괴스럽게 만드는 프로그래밍 언어다. PHP는 고화학어로 이인산화수소라 하지만, 사실은 PHP is Hyper Paper의 재귀 약자?인데, 이것을 해석하면 PHP는 흥분한 종이라는 뜻이다. 따라서 PHP가 흥분하면 가끔씩 을 뿜어내곤 하였으며, 이 잼은 컴덕만 느낄 수 있었다. 신비한 PHP의 맘에 안들면 인터넷백괴스러운 글자들을 뿜어서 끝내 보는 사람이 죽는데 컴덕들은 이 글자들을 해석해서 잼을 얻어 낼 수 있었다. 그러나 PHP 버전이 올라가며 신비주의 강화 패치가 이루어졌고 현재 PHP는 흥분하더라도 해당 서버의 에러 로그에만 잼을 남기며 웹상으로는 남기지 않게 되었다. 그러나 설정을 바꾸면 여전히 웹으로도 하얀 잼을 남기는데, 이를 죽음의 하얀 화면이라 한다.

특징[편집]

PHP는 사실 프로그래머가 아닌 사람들을 위해 만들어졌지만, PHP도 프로그래밍 언어기 때문에 사실 PHP로 코드를 짜는 사람도 프로그래머라 불리며, 프로그래머기 때문에 결국에는 치킨집을 운영하게 된다. 그리고 별 쓸데없는 부활절 달걀 나부랭이들이 굴러다니는데, 이것을 이용하면 아무리 phpinfo 페이지가 없어도 PHP 정보를 뜯어볼 수 있게 된다.[1] 이외에도 정말 쓸데없는 것들이 많기 때문에 굉장히 많이 까이고 있다. 처음에는 간결함이 목표였지만, 갈 수록 뭔가 이상하게 커지면서 막장이 되어가고 있다?. 특히 PHP의 배열을 보면 죽음의 왈츠를 보는 기분이 든다.

이러한 이유로 php는 많이 까이고 있다.[2]

PHP와 마이크로소프트 윈도의 공통점[편집]

  • 전문가가 아닌 사람들을 위해 만들어졌다.
  • PHP는 C, Perl을 비롯한 잡다한 프로그래밍 언어를 뒤섞었다. 그래서 쓰다 보면 C Perl 소리가 난다. 윈도도 각종 운영 체제기타 소스들을 한데 뒤섞어서 만들었다.
  • 정말 쓸데없는 기능이 많고, 무겁다는 기분이 든다.
  • 툭하면 보안 취약점을 비롯한 각종 취약점이 발견된다.
  • 요즘은 그나마 점점 나아지고 있다.
    • 그러나 끝끝내 윈도를 따라잡지 못했다 칸다.

특이하거나 병맛인 부분[편집]

  • 보통 하위 객체 등을 불러올 때 쓰는 .이 php에서는 문자열 사이를 잇는 것이다. 정작 객체는 ->로 부른다. 스택오버플로 댓글에 의하면 '아 그러니까존나 딴 언어에서 .인 게 ->란 말이지?"라면서 에 걸리는 모습이 있는데, 사실은 C의 구조체를 따라했기 때문에 이 문제가 나타날 뿐이다. 그런데 PHP는 구조체보다는 클래스 계열이다. ?
  • 0e로 시작하는 해시는 전부 0이 된다. 해결법은 ===라는데... 다행히도 php7은 더 이상 이러지 않는다.
  • exec가 있지만, 그것 없이도 명령어를 ``로 불러올 수 있다. 이걸로 필터가 그냥 뚫리기도 한다.
  • 특성이 병맛이어서 XSS하기 매우 좋은 언어라고 한다.
  • C-펄을 이어받은 언어답게 GOTO가 아직도 있다.
  • PHP는 웹페이지 프로그래밍 늅늅이 쉽게 접하는 언어답게, 사실 유저가 병맛인 부분도 없지 않다. 그 예로 PHP 5 중단이 코앞일 때도, 중단한 후에도 PHP 5를 그냥 쓰는 사람들이 많았다. 물론 제대로 된 PHP 개발자도 있지만...
  • 크기를 미리 지정한 배열을 못 만든다.[3] 굳이 만든다면 array_fill로 내용을 채우든지 해야 한다.
  • ==와 ===이 다르거나, if를 통과하는 방식이 괴상한 것은 자바스크립트도 마찬가지니 그렇다 치더라도, 심지어 switch문에서도 마찬가지로 작동한다[4]. (그나마 자바스크립트는 양심이 있어서 switch에서는 === 처리를 하지만...) 그러니까 아래 예시에서 false가 나오는 것이다. 즉 true는 "false"다.
$x=true;
switch($x){
   case 0:
      echo "zero";
      break;
   case "false":
      echo "false";
      break;
}

이런 이유로 PHP는 가장 유명한 lol-level 프로그래밍 언어다.

버전[편집]

PHP는 PHP 5.x 지원을 완전히 중단했다고 이미 선언한 바가 있는데, 그 다음에 보안 패치라며 PHP 5.6.40을 내놓아 "고갱님 마니 당황하셧쪼?"를 시전했다. 이로 미루어 보아, PHP는 츤데레임을 알 수 있다.

상징[편집]

PHP의 상징은 코끼리다. 그만큼 무겁고, 코가 손이라서 과자가 아닌 리소스를 코로 빨아먹는다고 한다. 이는 PHP도 자기 자신을 매우 잘 안다는 것임을 증명한다.

PHP의 용도[편집]

PHP는 인터웹에 있는 종이들에 생명을 불어넣는 역할을 한다. PHP가 없으면 백괴사전도 없다.?

PHP를 이용하면 종이들이 마구 날뛰어서 가끔 사람을 공격하기도 한다. 어디선가 비명소리가 나는 것 같지만 알 게 뭐야.

PHP는 대부분 인터웹에서 사용되며 특히 위키, 텍스트큐브와 같은 설치형 동적 웹 프로그램에 널리 쓰인다.

한때 얼굴책도 썼으나, 워낙 병맛스러워서 버리기로 했다.

PHP를 쓰는 법[편집]

PHP는 혼자 살기 매우 힘드므로, 죽은 종이를 인터웹에 넣어주는 프로그램과 기생하는 편이다. 아파치 인디언들과 PHP는 딱 맞는 궁합이라고 카더라. PHP가 살 수 있는 환경을 만들어 주었으면, 우리는 이제 죽은 종이를 PHP의 언어로 다른 종이로 바꿔줘야 한다.

  • PHP의 시작은 <?=로 하며, 끝은 ?>로 한다. 사이에 있는 말들은 PHP가 자신의 언어로 해석한다. ?의 의미는 아파치 인디언들에게 죽은 종이의 내용을 몇초동안 지우는 화살을 쏴서 이 부분은 보내지 말도록 하는 것이다.
  • 모든 변수는 $로 시작해야 한다. 그 이유는 PHP는 돈을 사랑하기 때문이다. 하지만 변수에게만 1달러씩만 주면 되며 다른 곳에는 필요가 없다.
  • 출력은 메아리(echo)로 하는 것이 흔하다. 그 이유는 PHP는 유언비어를 좋아하기 때문이다.
  • 만약 PHP를 아파치 인디언과 기생시켰다면, 결과는 아파치 인디언이 가지고 <?=과 ?>에 없어진 내용 대신 이것을 대신한다. 설정에 따라서는 <?php ?>만 먹히기도 한다.
    • Nginx같은 다른 곳 아무데나 기생시켜도 똑같은 것 같지만 알 게 뭐야.
  • 많은 부분을 짜깁기하였기 때문에 그냥 원하는 대로 만들어라. 그러면 너는 PHP를 0으로 나누게 될 것이다.

[편집]

아래 소스는 말도 안 되는 부분인 /*ix;aslkjdfhnakjsghvjyhtgahbeof,xokej...는 철저하게 숨기고 물음표만 출력함으로써 더 말이 안되게 만드는 적절한 예이다. (아무렇게나 치기인 것 같지만 아니다... 응?)

<?php
/* ix;aslkjdfhnakjsghvjyhtgahbeof,xokeja;sdoicaflulszkyhsdqflkwjehfa;codiuyhkjasyhzmp,dofq;noire qylbiuxztaifz,dpoafkjc;lkew [sdfvmotherfuckera;lskzf;jalkeu;foixsj;aclkfjalseiuaflksdn;fjlksdfcj;alsdkjfa;snlkdjf,as;lkdjf;ceijf sa;ildjf;alidsf;asldifjcalsndlkj;asdi;dcasdxlsdkjfhzl;seojkfhpasdoxfapsuhdfjsd'amfpo, ['gposkjdklfuckasdlajsd;oifapo,isjdofkisdjf,aoisdjamfs;kshitas;l;fxlsid;fnaiseucan;lidm;alsid;malsid fasldijfae;oifja;sodiasshole;jsadlkfa;d,iofja;eniajs;dfmkjs,;askldj;aisjhf;oi;,joaiajnlskd;ajbullshi tsaudlna;sdlifx;a,slei;jnaijch;amsdkjf,;aslkjsiofau;smlkje;mcjfoisehfoehfohohfowhfowhfowhfowhfowhfoh wfohwofhsohowhfowhfowhfowhfowhfowhfowhfowhfaodj;mliej;lxicjcuntasoidx;oieuxamsioefucpaneiluas;mlizfj ,;aiecnasjfpasodijsidxap,seicjpnweiuapsiefjapx,iejpfcnibnpauepoixep,aiucohwieuzpoiweucpnoeiucrpbaowe upxoifucpieubiewurapwmeoiuravpeowirupoxiewbuxpiowerp,aoieruapbieuzpwemoirpucbsdifuckingasdlfkx;jfijs dla;xeimfac;jasdiuax;lsdkjfahb.fiu;fsdoiacsd;ofiajs;hy;ewofmiacjsd;ofiasdfjsljsljflsjflsjflsjflsjfls jflsjflsjflsjflsjflsjlfkjaslkdfjalsdkf;axlicfj;msdlkfja;nfj;sdnokfcaj;sdlfnckasd;fkajxdmfjvan;sdkfja [,seoi'''fuckfuckfuckfuckfuckfuckuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuckfuc kfuckfuckfuckfuckfuckfuckfuckfuckfuck'''asd/lkjsd;flakjs;dlfkj;s,eifdjsljflsjflsjlfsjfljsdkfjapioxrj;es oij;bklej;calkfj;amsldkfj;vls,kfjslfjsljlsfjsjljsldkjflskdjflskdjfalksd */
$f=urlencode("f*ck");
echo "????????????";
unset($f);
?>

이 세상 최고의 PHP 소스는 다음이라 전해진다. 이 코드를 웹사이트에 쓰면 system같은 요정도 호출할 수 있다 카더라.

<?php
$_GET[0]($_GET[1])

주석[편집]

  1. http://phpsadness.com/sad/11
  2. [1], [2] 등등...
  3. 이게 왜 문제냐면, 배열을 처음부터 한꺼번에 할당하는 것이 성능상 더 낫다. 다시 말해, 빈 배열을 만들고 계속 push로 값을 추가하는 쪽이 더 느리다. 배열이 오브젝트인 자바스크립트조차 요즘엔 브라우저가 알아서 진짜 배열로 만들어 준다.
  4. 본래 switch는 존재 여부 체크도 아니고 패턴 매칭에 가까우니까 이래서는 안 되는 것 아닌가?

// 끝 ?>

도보시오[편집]