Já publicámos vários artigos sobre PHP e Javascript, no entanto hoje trazemos-lhe algo que vai abranger os dois temas de forma profunda: Técnicas para Trabalhar Javascript em PHP. Javascript é uma linguagem bastante popular e é amplamente utilizada nos websites nos dias de hoje, em conjunto com PHP, criando fantásticos websites que deslumbram qualquer visitante. Se pretende ir mais além e trabalhar com afinco esta dupla Javascript / PHP , não pode perder este artigo onde iremos expor conteúdo de grande relevância e interesse.

Se leu algum dos artigos anteriores sobre Javascript ou PHP, certamente já saberá que:

  • PHP significa Hypertext Preprocessor e é uma linguagem do lado do servidor, que significa que as acções são executadas pelo servidor web, e não no navegador do usuário, como acontece com Javascript.
  • Com Javascript é possível introduzir efeitos nas páginas web e criar interactividade com o utilizador, sendo o browser o responsável por todo o processamento do Javascript.

Se ainda não leu os nossos artigos, tome nota de alguns:

Iremos dividir este artigo em alguma secções: Objectos, Funções, Arrays, Strings e Callbacks. Dentro de cada uma delas haverá conteúdo variado. Comecemos então!

1. OBJECTOS

Quase tudo em Javascript é um objecto, e não existem classes. Existe uma hipótese de definir um objecto, que passa por simplesmente definir as propriedades que pretende que o objecto tenha, separados por vírgulas:

var calendario = {
    nome: "Calendário Escola Criatividade",
    ano: "2011"
};

Como vê, este objecto é simples e não tem métodos. Para criar um objecto idêntico em PHP pode converter um array em um objecto, desta forma:

$calendario = (objecto) array(
    nome => 'Calendário Escola Criatividade',
    ano => 2010
);

Continua simples e sem classes. Em termos gerais, um objecto é apenas um array trabalhado, isto porque alguns elementos do array podem ser chamados, e por isso se chamam métodos.

Outra possibilidade de criar um objecto e começando com um objecto vazio:

var calendario = {};

Em PHP, isto é igual a:

$calendario = new stdClass();

Em Javascript, também pode ser feito assim, mas não tem qualquer importância:

var calendario = new object();

Além de tudo o resto, também é possível adicionar conteúdo ao array enquanto formos trabalhando:

calendario.nome = "Calendário Escola Criatividade";
calendario.ano = 2011
calendario.falar = function () {
    return this.nome + ' - ' + this.ano;
};

Agora, se pretendermos devolver o “falar” faríamos o seguinte:

calendario.falar();

// Irá devolver Calendario Escola Criatividade - 2011

2. FUNÇÕES

A maneira como se define uma função construtora e uma função normal é 90% igual em Javascript. Os 10% de diferença prendem-se com a chamada. Quando uma função é chamada com new, devolve sempre um objecto. Se não for utilizado, o que é devolvido é o objecto referente ao this.

alert(typeof new Calendario()); // Objecto

alert(typeof Calendario()); // Indefinido

Para diferenciar o objectivo de uma função ao ler o código, normalmente utiliza-se uma letra maiúscula na primeira letra das funções construtoras:

function MeuContrutor() {} // Função Construtora
function minhaFunção() {} // Função "normal"

Como a maioria das coisas em Javascript são objectos, as funções são objectos também. Estas podem e têm de facto propriedades e métodos. Frequentemente poderá encontrar funções definidas com var:

var sum = function(a,b) {
    return a + b;
};

Agora, se quiser saber o comprimento do sum:

alert (sum.lenght); // Isto irá devolver 2

Desta forma acedemos á propriedade lenght do objecto sum. As funções têm uma propriedade lenght que contém o número de parâmetros expectáveis. Por defeito, os parâmetros têm o valor undefined. A e B são undefined, daí a soma ser 2.

3. ARRAYS

Os arrays, ao contrário do que muita gente idealiza, são extremamente simples. São listas de valores separadas por virgulas, dentro de parêntesis rectos. Nada melhor que um exemplo, certo?

var carros = ['Ferrari F50', 'Bugatti Veyron', 'Porsche 911 GT3', 'Ferrari Enzo'];
alert (carros[3]); // Irá devolver a terceira posição da lista carros, Ferrari Enzo

Em PHP, é em tudo idêntico:

$carros = array('Ferrari F50', 'Bugatti Veyron', 'Porsche 911 GT3', 'Ferrari Enzo');
echo $carros[3]; // Irá devolver a terceira posição da lista carros, Ferrari Enzo

Então, novamente, se pretender saber qual o tamanho do array carros:

Javascript: alert(carros.lenght); // 4  //PHP: echo count($carros); // 4

4. STRINGS

Não há nada de especial com as strings, além do facto de que as strings também são objectos. Tecnicamente existe uma diferença entre o objecto string e a string primitiva, mas a string primitiva pode ser convertida em objecto quando necessário, portanto não há necessidade de nos estarmos a alongar com detalhes sobre este assunto:

// Objecto String
var ObjString = new String('Telemovel');
alert(typeof s); // Irá devolver o tipo da string, que neste caso é "Object"

// String Primitiva
var StringPrimi = 'Computador';
alert(typeof s); // Irá devolver o tipo da string, que neste caso é "String"

Como acontece com os arrays, as funções de manipulação estão disponíveis:

// Javascript
var nome = "Escola Criatividade";
alert(nome.substring(7)); // Irá Devolver "Criatividade"
alert(nome.replace(' ', ' Com Muita ')); // Irá Devolver "Escola Com Muita Criatividade"

// PHP
$nome = 'Escola Criatividade';
print(substr($nome, 7)); // Irá Devolver "Criatividade"
print(str_replace(' ', ' Com Muita ', $nome)); // Irá Devolver "Escola Com Muita Criatividade"

5. CALLBACKS

As funções callback são as funções reutilizáveis. Quer isto dizer que essas funções e métodos aceitam outras funções como parâmetros. Um fantástico exemplo disso mesmo é o método sort():

// Javascript
var num = [103,9,45,2,21];
num.sort(); // Irá devolver uma ordem aleatória

// PHP
$num = array(103,9,45,2,21];
sort($num); // Irá devolver a ordem correcta: 2,21,9,45,103

//PHP como JavaScript
$num = array(103,9,45,2,21);
sort($num SORT_STRING); // Irá devolver uma ordem aleatória

Se pretender um ordenamento numérico, pode utilizar uma função callback:

// callback

var num = [103,9,45,2,21];
num.sort(function (a, b) {
    return(a > b) ? 1: -1;
});

Irá devolver "2,9,21,45,103"

// Em Alternativa poderá utilizar a função existente como callback

var num = [103,9,45,2,21];
function numsort(a, b) {
    return(a > b) ? 1: -1;
}
a.sort(numsort); // Irá devolver "2,9,21,45,103"

Se pretender fazê-lo em PHP:

// callback
$num = array(2,9,21,45,103);
usort($num, funtion ($a, $b) {
    return ($a, $b) ? 1 : -1;
});

// Em alternativa poderá utilizar a função existente como callback
$num = array(2,9,21,45,103);
function numsort($a, $b) {
    return($a, $b) ? 1 : -1;
};

usort($num, 'numsort');

6. RESUMO

Resumindo, podemos concluir que:

  • Javascript e PHP são similares em alguns pontos
  • Javascript não tem classes
  • Em Javascript, a maioria das coisas são objectos, incluíndo os arrays e strings.
  • Em Javascript funções são objectos
  • Javascript tem funções construtoras.

No entanto, e apesar de tudo o que Javascript tem de bom, existem muitas pessoas que não gostam, alegando erros. Esses erros são criados pelas API DOM dos browsers. O javascript é uma linguagem simples e pequena, que vale a pena aprender!

E VOCÊ, UTILIZA JAVASCRIPT E PHP?

Qual a sua opinião sobre Javascript, PHP e a utilização de ambos? A comunidade Escola Criatividade irá gostar imenso de contar com a sua opinião, participe já!

Abraço e até já!

 

Autor: Diogo Espinha

Blog do Autor | Artigos do Autor:

Workaholic e totalmente viciado em computadores, Internet e desporto motorizado. Adora praticar desporto, é um curioso da programação em PHP, CSS e HTML5 e não dispensa a companhia do seu Mac OSX 86 Snow Leopard!

Templates Incríveis para seus Projetos:

  • Uhuru - Responsive Multi-Purpose Concrete5 Theme
  • Bloggani - Responsive Joomla Blogging Template
  • MY FOLIO : Responsive Photography Joomla
  • Nyirok - Responsive Portfolio & Business Templates
  • Prime - Responsive Multipurpose concrete5 Theme
  • JSN Sky - Responsive Hotel Theme & Jomres support
  • Degree Creative and Responsive Joomla Template
  • Dmart - Clean and Responsive Drupal Commerce theme
  • Mj Simple -Responsive Concrete5 theme
  • Fascino - Responsive Joomla & VirtueMart Template
  • myShop - Responsive Drupal Commerce Theme
  • Minima - Responsive Joomla Business Template

Gostou deste artigo? Então torne-se fã do Blog no Facebook!



Comentários dos Alunos

Comente o Artigo!

RSS
Twitter
Facebook
Comentários
ASSINANTES
SEGUIDORES
FÃS
COMENTÁRIOS
7392

Subscrever Newsletter
Subscreva a Newsletter:



Aplicativos Android, iPhone e Muito Mais!




Assine a Escola Criatividade Assine a Newsletter da Escola Criatividade Escola Criatividade no Twitter Escola Criatividade no Facebook Escola Criatividade no Youtube Escola Criatividade no Google Buzz