PHP

Origem: Desciclopédia, a enciclopédia livre de conteúdo.

60px-Bouncywikilogo.gif
Para aqueles sem senso de humor, os espertalhões da Wikipédia têm um artigo (pouco confiável) sobre: PHP.
Cquote1.pngVocê quis dizer: PQP Cquote2.png
Google sobre PHP

Cquote1.pngVocê quis dizer: Baiano Cquote2.png
Google sobre PHP
Cquote1.pngVocê quis dizer: POG HP Cquote2.png
Google sobre PHP
Cquote1.png <? die(PHP); ?> Cquote2.png
PG sobre PHP
Cquote1.png define('PHP', 'PHP'); Cquote2.png
Nerd sobre o comentário acima.
Cquote1.png Uma linguagem que implementa o "X IGUAL a Y", porém "X é MAIS-IGUAL a Z !!!" (?) Cquote2.png
PG sobre PHP
Cquote1.png PHP - Padrão Homossexual de Programação Cquote2.png
Clodovil sobre PHP
Cquote1.png Hãn? Oque o Echo faz no PHP mesmo? Cquote2.png
POGramador sobre PHP
Cquote1.png echo — Exibe uma ou mais strings Cquote2.png
M4nu t3nçã0 sobre PHP
Cquote1.png Em PHP, algumas partes não da para fazer orientado a objeto, por isso é necessário "desorientar o objeto". Cquote2.png
Fuinha sobre PHP
Cquote1.png PHP é facil. Se eu aprendi, você também aprenderá. Cquote2.png
Fuinha sobre PHP
Cquote1.png PHP foi feito para reduzir o salário dos programadores. Cquote2.png
Tio Patinhas ou patrão miserável sobre PHP
Cquote1.png ...?!?!?... Cquote2.png
Doutor Roberto sobre PHP
Cquote1.png Prefiro o .net. Cquote2.png
Oscar Wilde sobre PHP
Cquote1.png Prefiro ASP. Cquote2.png
Bill Gates sobre PHP
Cquote1.png O cão foi quem colocou pá nois programá. Cquote2.png
Jeremias sobre PHP
Cquote1.png Sou EU que faço. Cquote2.png
Daltony sobre PHP
Cquote1.png Sou EU que faço, TUDO MESMO! Eu mesmo sou quem implementa o Struts, o JSF, o Hibernate, o EJB, etc. Tudo do jeito que eu quiser, e é óbvio que eu faço melhor do que a Sun, do que a Apache, etc... Cquote2.png
PG sobre PHP
Cquote1.png QUIZ Filosófico: qual a altura máxima de um prédio constuído sem colunas ou outros 'Patterns' de engenharia? Cquote2.png
PG sobre PHP
Cquote1.png Gostei dessi tal di PE AGA PE. Cquote2.png
Che Guevara sobre PHP
Cquote1.png O Bom de PHP é que você pode contratar o seu sobrinho pra terminar qualquer projeto. Cquote2.png
Pessoa sensata sobre o PHP
Cquote1.png Eu detesto tipagem! Cquote2.png
Chuck Norris sobre PHP
Cquote1.png É ruim. Não tem: tipagem. Na versão 4, você usa variáveis não declaradas e tem POO muito incompleta, alias, nem tem. Ah! tem uma sintaxe muito feia. Use ASP.net ou JSP Cquote2.png
Sombra sobre PHP
Cquote1.png PHP!? AH já usei uma vez no banheiro, Personal Hygienical Paper Cquote2.png
Programador Java sobre PHP
Cquote1.png Na União Soviética, o PHP echo você! Cquote2.png
Reversal Russa sobre PHP
Cquote1.png Não vemos PHP em sites de bancos e cartões de crédito por interesse dos grandes grupos econômicos no uso de .Net e Java Cquote2.png
Típica desculpa furada de programador PHP ao ser questionado sobre o uso da linguagem em portais corporativos sobre PHP
Cquote1.png Funcione, em nome do Senhor.! Cquote2.png
Pastor da Igreja Universal sobre PHP
Cquote1.png Meu cavalo usa arrayO tbm Cquote2.png
Designer Sitiante sobre PHP
Cquote1.png Papel Higiênico de Pobre Cquote2.png
Miguel Falabella sobre PHP
Cquote1.png Programa bom é programa rodando Cquote2.png
Paulo Maluf sobre PHP

Tabela de conteúdo

[editar] PHP

Propaganda subliminar do PHP, deixando claro a intenção desta linguagem

PHP (Pqp,Hoje estou com Prequiça) é uma das sete linguagens de programação consideradas pela Igreja Católica como satânicas (as outras são C++, VB, Delphi, ASP, ASP.NET, Tabelinha e Catalão). Acredita-se que foi criada com o único propósito de desvirtuar inocentes programadores e levá-los ao caminho do mal. O sujeito que se atreve a programar em PHP começa a perder gradativamente o conhecimento em outras linguagens, e passa a usar variáveis (ou urináveis) sem as declarar em qualquer linguagem.

[editar] PHP e seu Mestre

Desenvolvida pelo próprio Satã, em seus vastos domínios infernais, o PHP logo se espalhou como o mal entre programadores, analistas de sistemas e outros profissionais da área de Informática e Tecnologia como uma forma de criar vários softwares perversos e demoníacos com o único e supremo propósito de espalhar a insegurança e caos na Internet.

puta que pariu hein

[editar] Falsos Profetas

Todos que defendem esta pobre e nefasta linguagem são considerados falsos profetas e devem ser combatidos como ardor por membros das religões universais: Católica, Budista, Muçulmanos... Deve-se notar, no entanto, que alguns especialistas discordam de tal opinião, como por exemplo Fernando Gabeira, Fausto Silva e Chun Kin Chang. Eles sustentam que diversos ritos mundiais utilizaram a linguagem e tiveram seus vistos negados na entrada do Inferno. Religiões majoritárias negam tal fato, dizendo que apenas seus próprios fiéis têm o direito de descer ao Inferno e que, por isso, ritos minoritários nunca teriam chegado à alfândega.

É inegável, porém, que PHP tem seus lados positivos sobre outras linguagens, totalizando
Notice: Undefined variable: vantagens in /var/www/desciclopedia/VantagensDoPHP.php on line 22
0 vantagens sobre as outras linguagens. Entre as quais podemos citar:


Notice: Undefined variable: vantagens in /var/www/desciclopedia/VantagensDoPHP.php on line 24

Warning: Invalid argument supplied for foreach() in /var/www/desciclopedia/VantagensDoPHP.php on line 24

[editar] Leis Satânicas do PHP

Cquote1.png Tipagem é coisa de criança. Cquote2.png
Grande Mestre Satã Imperial explicando porque não há definição de tipo de variáveis em PHP

Cquote1.png Fracos compilam, os fortes interpretam. Cquote2.png
Grande Mestre explicando porque não se compila um script PHP

Cquote1.png Orientação a Objeto não é um paradigma. POG é um paradigma. Cquote2.png
Grande Mestre justificando a falta de organização da linguagem PHP

Cquote1.png No PHP, nós confiamos! Cquote2.png
Mantra Ewok da Imortalidade mortal

[editar] PHP e a sua documentação

O Capeta, ao desenvolver o PHP, pensou que seria extremamente benéfico fazer com que os ditos programadores aprendessem a RTFM. Por isso, fez com que cada função recebesse parâmetros de uma maneira diferente. Assim, é praticamente impossível escrever meia dúzia de linha sem ter que consultar qual é a maldita ordem dos parâmetros.


Conforme os padrões POG, um POGramador deve ser fluente em sua linguagem. Isso é 100% válido para o PHP. Veja abaixo um exemplo de nome de método que dispensa qualquer tipo de documentação (inclusive PHPDoc):

public function getConfiguracaoPermissaoByUsuarioAndPermissaoUsuarioConfiguracaoPermissaoPerfilSistemaNaoCancelados()
{
     // Implemente seu POG aqui
}

[editar] Tratamento de erros em php

Em sua próxima versão, 6.66, o PHP Implementará um método radical no tratamento
dos erros de execução, na verdade, os erros é que serão sumariamente executados.

Basta estender a classe pai de todas as classes, a classe ChuckNorris.
Se Algum erro se atrever a acontecer, trate-o com o RoundHouseKickException
Chuck Norris dará o que ele merece.

Exemplo de código:

<?php
require chucknorris.class.php

Class FooDeu extends ChuckNorris{

    function FooDeu(){
    }   
 
    function dividePorZero($numero){
        $result = null; 
        Try{
          $result = $numero/0;
          throw new Exception('RoundHouseKickException');
        }
        Catch(RoundHouseKickException exception){  
             goChuckNorris(exception);
             $result = $numero/0;
        }
        return $result; 
    }
}
?>

[editar] Igualdade (?)

Desde os primórdios da humanidade, se dizemos que...

A == B 
AND
B == C

... concluímos que A == C. Foi assim que Deus fez o mundo.

Daí a galerinha do PHP, "para simplificar", fez umas adaptações neste conceito. O que causou erros maquiavélicos que só estouraram com o crescimento da linguagem. Igual aos sistemINHAS feitos em PHP que viram sistemÕES e estouram pelo mesmo motivo.

Por exemplo, a função strpos(), que retorna a posição de uma substring em uma string maior.

http://www.php.net/manual/pt_BR/function.strpos.php

Veja o aviso da própria linguagem sobre o uso NADA PLAUSÍVEL da função:

Esta função pode retornar o booleano FALSE, mas também pode retornar um
valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a
seção em Booleanos para maiores informações. Utilize o operador === para
testar o valor retornado por esta função.

Uma bela funcionalidade do PHP, é sua detecção de famílias, veja este exemplo abaixo para uma melhor compreender:

<?php
if (('1 galinha' + '2 pardais') == '3 aves') {
 echo 'são iguais!!!';
}
?>

Note a tecnologia envolvida no trexo de código acima, o interpretador do PHP é capaz de detectar que 1 galinha + 2 pardais são iguais a 3 aves. Que outra linguagem de programação é capaz de perceber isso?

[editar] Exemplo de código em PHP

<?php
//HelloWorld Simples feito em PHP

ob_implicit_flush(1);
set_time_limit(0);

interface iWriter
{
	public function setMsg($msg);
	public function setCh($ch);
	public function Exec();
	public function WriteLine($txt);
}

class Writer implements iWriter
{
	protected $msg;
	protected $ch;
	
	public function __construct($msg, $ch=false)
	{
		$this->setMsg($msg);
		$this->setCh($ch);
		$this->Exec();
	}
	
	public function setMsg($msg)
	{
		$this->msg = $msg;
	}
	
	public function setCh($ch)
	{
		$this->ch = (bool)$ch;
	}
	
	public function Exec()
	{
		if($this->ch)
			return $this->WriteLine($this->msg);
	}
	
	public function WriteLine($txt)
	{
		echo $txt."\n";
	}
}

class HelloWorld
{
	private $msg;
	
	public function __construct()
	{
		$this->msg = 'Hello World!';
		$this->fvox();
	}
	
	private function fvox()
	{
		$write = true;
		$writer = new Writer($this->msg, (bool)$write);
	}
	
	public function __toString()
	{
		return $this->smg;
	}	
}

$hw = new HelloWorld;
?>
<?php
//Imprimindo uma array
$array = array('banana ','maça ','leite ');
$start = 0;
$end = count($array)-1;
while(true){
	print $array[$start];
	$start++;
        if($start <= $end) {
            break;
        }
}
?>
<?
$l1 = ('Hello world');
for ($lI=$ll=0 ; $ll >= $lI ; $ll++&&$lI++){//II+*
_($l1[ $ll %= 4 ]);/*$II+=$lI*///II++
if($lI != ($ll % true) + 2);// não mecha!!!
else break;
}_('!');_(); // o que é isso ???
// function exit(); //
function _($l1 = "
\n"){printf("%s",$l1);}; // aqui a casa cai
?>
<?
if ("6 Galinhas" + "4 Gansos" == "10 Aves") {
   echo "Expresão Verdadeira!"; //php estupido
} else {
   echo "Expresão Falsa!";
}
?>
<?
if ("6 Galinhas" + "4 Elefantes" == "10 Aves") {
   echo "Animal Fail!"; //php estupido
}
?>
<?
class Mascara{
	var $mask;
	function mascara(){
		$this->mask = "";
	}
	function setMascara($mask)
	{
		$this->mask = $mask;
	}
	function monta($input){
		if(empty($this->mask))
			return 'Máscara não definida';
		if(is_array($input))
		{
			$tr_from = $tr_to = array();
			$i = 0;
			foreach($input as $chave => $valor)
			{
				$tr_from[$i] = "%%{$chave}%%";
				$tr_to[$i]   = $valor;
				$i++;
			}
			return strtr($this->mask,$tr_from,$tr_to);
		}
		$r = array('%%V%%','%%VALOR%%');
		return str_replace($r,$input,$this->mask);
	}
}

$m = new Mascara();
$m->setMascara("eu amo %%VALOR%% demais!!! <br>");
echo $m->monta('chocolate');
echo $m->monta('pare');
echo $m->monta('refrigerante');
echo $m->monta('php');
echo $m->monta('gambiarra');
?>

[editar] Exemplo Prático

Veja a seguir um exemplo prático desta linguagem utilizando-se o método POG. Repare a clareza e objetividade do código:

<div style='position:absolute;top:-3px;display:<?=$valor?$tipo1:$tipo2; ?>'>
<? if($flag == 0){ ?>
<script>
  var a = [<?=implode(',',$lista)?>];
  <? $SQL = "SELECT * FROM clientes WHERE 1 ORDER BY data ASC LIMIT 1 OFFSET 1 " ?>
<? }else{ ?>
<b> entroh aqui flag= <?=$flag //debugue ?> </b>
     <? $SQL = "SELECT * FROM clientes WHERE ".$cond." ORDER BY data ASC LIMIT 1 OFFSET ".$flag ?>
<script>
  //
  var a= [<?=implode(',',$lista_)?>];
<? } ?>
  // debugue
  alert(a);

<<?php echo '/'."script"; // kuIDaDeNHo c/AxXx bAhRRaxXXxx ?>>

</div>

Outro exemplo bem claro da obscuridade da programação em PHP. Aqui devemos refletir sobre a frase proferida em Mad Max: "Dois programadores entram, um programador sai!";

$colunaDifetente = $_SESSION['janelaBusca'][$_POST['idJanela']]['colunaDiferente'];

if(is_array($colunaDifetente)){
    if (is_array($vet)){
        foreach ($vet as $k=>$v){
           foreach ($v as $k1=>$v1){
                foreach ($v1 as $k2=>$v2){
            	    foreach ($colunaDifetente as $k3=>$v3){
            	        if ($vet[$k]['r'][$k2]['c'] == $k3) {
            	            $vet[$k]['r'][$k2]['c'] = $v3;
            	        }
            	    }
                }
            }
        }
    }
}

[editar] Depurando PHP

Cientes da superioridade da técnica avançada do print para debug, as mentes por trás do PHP, certas de que estavam pensando muito além de seu tempo, não introduziram apenas um, mas três métodos de debug no PHP: print, echo e die. Os dois primeiros, embora parecidos, não são sinônimos; usar a função apropriada depende da fase da Lua e da população exata da China no momento em que o código foi escrito.

Já o terceiro (die) combina o melhor de dois mundos: depuração e tratamento de exceções (try..catch é coisa de viado). Assim, seu sistema fica com ZERO camadas, veja:

if (mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password') || die('Não foi possível conectar: ' . mysql_error()) {
   // executa SQL, foreach nos registros retornados, imprime <HTML>, <TR>, <TD>, <B>, etc...
 }

Por isso, a UNESCO está fazendo uma campanha em escolas primárias. Afinal, é desde cedo que se deveria aprender certas coisas:

Nophp1.png

(ainda tem mais dois cartazes da campanha, que vou postar aqui)


[editar] Aviso de erros

Desenvolvido por Luciana Gimenez e aperfeiçoado por Carla Perez, a verificação de erros tem sido o medo de todo programador PHP. O processador do PHP utiliza a função rand() para tentar saber em qual linha ocorreu o erro e guarda essa linha em cache para futuras consultas.

Exemplo do código de verificação:

<?php
if ( $error != '' OR isset($error) ) {
  $linha = rand(1, $total_de_linhas);
  if ( is_numeric($error) ) {
    echo "Parse error: parse error, unexpected T_PRINT, expecting, expecting T_FUNCTION ',' or ';' or '}' in " . $_SERVER['SCRIPT_FILENAME'] . "<b> on line</b>" . $linha;
  } else {
    echo "Parse error: parse error, unexpected $ in" . $_SERVER['SCRIPT_FILENAME'] . "<b> on line</b> " . $linha;
  }
}
?>

Exemplo de código com erro:

1.  <?php
2.  class oi{
3.  	function teste(){
4.		if ('a' == 'a'){       # => Esqueci de fechar o if
5.      }
6.  }
7.  ?>

Erro segundo o PHP( Repare que na linha 7 é o término do bloco PHP):

Parse error: parse error, unexpected ';',
expecting T_FUNCTION in /home/usuario/www/includes/file.php on line 7

Para aumentar a probabilidade de acertar a linha em que ocorre o erro, tenha do seu lado:

  • Um pai de santo
  • Uma bola de cristal
  • Pé de coelho
  • Galinha da angola
  • Crucifixo
  • Palantir
  • Bala de prata
  • Charutos
  • Figa
  • Olho de boi
  • Cartas de Tarot
  • Número de telefone da Mãe Diná
  • Um banho de cheiro feito pela D. Maria das Ervas do Ver-o-Peso
  • Alguém que saiba PHP de verdade

As chances de você acertar a linha em que ocorreu o erro tendo todos os requisitos acima aumenta para 15%.

Para programar sozinho, basta ser um vidente. Esse é um dos motivos pelo qual o PHP é uma das 7 linguagens de programação que são condenadas pelo Vaticano.

MWAHAHAHAHAHA!

[editar] Ver também

v  d  e h
Linguagens de Programação

ABAPKhadaAJAXAlgolAlgoritmoASPAssemblyBASICBashBefungeBrainfuckCC♭C#C=C+1C=C-1ClipperCOBOLColdFusionDDBaseDelphiEiffelFortranFoxProGambiarraGeneXusGroovyHaskellHQ9+HQ9++HTML (Microsoft HTML)• IntercalJADJavaJavaScriptLispLuaMakerMalbolgeManaged C++ModulaNatural.NetPascalPascaliPerlPutaPHPPOGPortugolPrologPythonRubyRuby on RailsRuby off RailsScalaSmalltalkSQLVBScriptVisual BasicVHDLWilde CWhitespace

Ferramentas pessoais