Membros:

Erick Chemevski Espindula

Lisandro Luiz da Silva

Rafael Faleiro Schulze


Índice

Sobre a composição dos nomes


Tamanho dos nomes em PHP


Na linguagem PHP não há limite de tamanho para o nome.


Existe distinção entre maiúsculas e minúsculas na composição dos nomes ?


As variáveis no PHP são representadas por um cifrão ($) seguido pelo nome da variável. Os nomes de variável no PHP fazem distinção entre maiúsculas e minúsculas.

Os nomes de variável seguem as mesmas regras como outros rótulos no PHP. Um nome de variável válido se inicia com uma letra ou sublinhado, seguido de qualquer número de letras, algarismos ou sublinhados. Em uma expressão regular isto poderia ser representado desta forma: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'


Palavras-chaves e palavras reservadas


Lista de palavras-chave (keywords)

Estas palavras tem um significado especial no PHP. Algumas delas representam coisas que parecem funções, algumas parecem constantes mas na verdade não o são realmente: elas são construtores de linguagem. Você não pode usar nenhuma das seguintes palavras como constantes, nomes de classes, de funções ou de métodos. Utilizar como nome de variáveis geralmente não causa erros, mas pode levar a confusão.

Tabela das Palavras-chaves do PHP

abstract (a partir do PHP 5)andarray()as break
case catch (as of PHP 5) cfunction (PHP 4 only)classclone (as of PHP 5)
constcontinuedeclaredefaultdo
elseelseif enddeclareendforendforeach
endifendswitchendwhileextendsfinal (as of PHP 5)
forforeachfunctionglobal
ifimplements (a partir do PHP 5)interface (a partir do PHP 5)instanceof (a partir do PHP 5)
namespace (a partir do PHP 5.3)newold_function (PHP 4 somente)orprivate (a partir do PHP 5)
protected (a partir do PHP 5)public (a partir do PHP 5)staticswitchthrow (a partir do PHP 5)
try (a partir do PHP 5)usevarwhilexor

Constantes Compile-time

CLASS DIR (no PHP 5.3)FILELINEFUNCTION METHOD NAMESPACE (a partir do PHP 5.3)

Construtores da linguagem

die() echo()empty()exit() eval()include()include_once()
isset() list() require() require_once() return() print() unset()

Tabela das Constantes Pré-definidas

Principais Constantes Pré-definidas

Essas constantes são definidas pelo núcleo do PHP. Isso inclui PHP, o engine do Zend e módulos SAPI.

PHP_VERSION (string)
PHP_MAJOR_VERSION (integer)Available since PHP 5.3.0.
PHP_MINOR_VERSION (integer)Available since PHP 5.3.0.
PHP_RELEASE_VERSION (integer)Available since PHP 5.3.0.
PHP_VERSION_ID (integer)Available since PHP 5.3.0.
PHP_EXTRA_VERSION (string)Available since PHP 5.3.0.
PHP_ZTS (integer)Available since PHP 5.3.0.
PHP_DEBUG (integer)Available since PHP 5.3.0.
PHP_OS (string)
PHP_SAPI (string)Disponível dese o PHP 4.2.0. Veja também php_sapi_name().
PHP_EOL (string)Disponível desde o PHP 4.3.10 e PHP 5.0.2
PHP_INT_MAX (integer)Disponível desde o PHP 4.4.0 e PHP 5.0.5
PHP_INT_SIZE (integer)Disponível desde o PHP 4.4.0 e PHP 5.0.5
DEFAULT_INCLUDE_PATH (string)
PEAR_INSTALL_DIR (string)
PEAR_EXTENSION_DIR (string)
PHP_EXTENSION_DIR (string)
PHP_PREFIX (string)Disponível desde o PHP 4.3.0
PHP_BINDIR (string)
PHP_LIBDIR (string)
PHP_DATADIR (string)
PHP_SYSCONFDIR (string)
PHP_LOCALSTATEDIR (string)
PHP_CONFIG_FILE_PATH (string)
PHP_CONFIG_FILE_SCAN_DIR (string)
PHP_SHLIB_SUFFIX (string)Disponível desde o PHP 4.3.0
PHP_OUTPUT_HANDLER_START (integer)
PHP_OUTPUT_HANDLER_CONT (integer)
PHP_OUTPUT_HANDLER_END (integer)
E_ERROR (integer)
E_WARNING (integer)
E_PARSE (integer)
E_NOTICE (integer)
E_CORE_ERROR (integer)
E_CORE_WARNING (integer)
E_COMPILE_ERROR (integer)
E_COMPILE_WARNING (integer)
E_USER_ERROR (integer)
E_USER_WARNING (integer)
E_USER_NOTICE (integer)
E_ALL (integer)
E_STRICT (integer)Disponível desde o PHP 5.0.0
COMPILER_HALT_OFFSET (integer)Disponível desde o PHP 5.1.0
TRUE (boolean)
FALSE (boolean)
NULL (boolean)

Constantes Padrão Pré-definidas

Constantes definidas no PHP por padrão.

EXTR_OVERWRITE (integer)EXTR_SKIP (integer)EXTR_PREFIX_SAME (integer)EXTR_PREFIX_ALL (integer)EXTR_PREFIX_INVALID (integer)
EXTR_PREFIX_IF_EXISTS (integer)EXTR_IF_EXISTS (integer)SORT_ASC (integer)SORT_DESC (integer)SORT_REGULAR (integer)
SORT_NUMERIC (integer)SORT_STRING (integer)CASE_LOWER (integer)CASE_UPPER (integer)COUNT_NORMAL (integer)
COUNT_RECURSIVE (integer)ASSERT_ACTIVE (integer)ASSERT_CALLBACK (integer)ASSERT_BAIL (integer)ASSERT_WARNING (integer)
ASSERT_QUIET_EVAL (integer)CONNECTION_ABORTED (integer)CONNECTION_NORMAL (integer)CONNECTION_TIMEOUT (integer)INI_USER (integer)
INI_PERDIR (integer)INI_SYSTEM (integer)INI_ALL (integer)M_E (float)
M_LOG2E (float)M_LOG10E (float)M_LN2 (float)M_LN10 (float)
M_PI (float)M_PI_2 (float)M_PI_4 (float)M_1_PI (float)
M_2_PI (float)M_2_SQRTPI (float)M_SQRT2 (float)M_SQRT1_2 (float)
CRYPT_SALT_LENGTH (integer)CRYPT_STD_DES (integer)CRYPT_EXT_DES (integer)CRYPT_MD5 (integer)
DIRECTORY_SEPARATOR (string)SEEK_SET (integer)SEEK_CUR (integer)
LOCK_SH (integer)LOCK_EX (integer)LOCK_UN (integer)LOCK_NB (integer)HTML_SPECIALCHARS (integer)
HTML_ENTITIES (integer)ENT_COMPAT (integer)ENT_QUOTES (integer)ENT_NOQUOTES (integer)INFO_GENERAL (integer)
INFO_CREDITS (integer)INFO_CONFIGURATION (integer)INFO_MODULES (integer)INFO_ENVIRONMENT (integer)INFO_VARIABLES (integer)
INFO_LICENSE (integer)INFO_ALL (integer)CREDITS_GROUP (integer)CREDITS_GENERAL (integer)
CREDITS_MODULES (integer)CREDITS_DOCS (integer)CREDITS_FULLPAGE (integer)CREDITS_QA (integer)CREDITS_ALL (integer)
STR_PAD_LEFT (integer)STR_PAD_RIGHT (integer)STR_PAD_BOTH (integer)PATHINFO_DIRNAME (integer)PATHINFO_BASENAME (integer)
PATHINFO_EXTENSION (integer)PATH_SEPARATOR (string)CHAR_MAX (integer)LC_CTYPE (integer)LC_NUMERIC (integer)
LC_TIME (integer)LC_COLLATE (integer)LC_MONETARY (integer)LC_ALL (integer)LC_MESSAGES (integer)
ABDAY_1 (integer)ABDAY_2 (integer)ABDAY_3 (integer)ABDAY_4 (integer)ABDAY_5 (integer)
ABDAY_6 (integer)ABDAY_7 (integer)DAY_1 (integer)DAY_2 (integer)DAY_3 (integer)
DAY_4 (integer)DAY_5 (integer)DAY_6 (integer)DAY_7 (integer)ABMON_1 (integer)
ABMON_2 (integer)ABMON_3 (integer)ABMON_4 (integer)ABMON_5 (integer)ABMON_6 (integer)
ABMON_7 (integer)ABMON_8 (integer)ABMON_9 (integer)ABMON_10 (integer)
ABMON_12 (integer)MON_1 (integer)MON_2 (integer)MON_3 (integer)MON_4 (integer)
MON_5 (integer)MON_6 (integer)MON_7 (integer)MON_8 (integer)
MON_10 (integer)MON_11 (integer)MON_12 (integer)AM_STR (integer)PM_STR (integer)
D_T_FMT (integer)D_FMT (integer)T_FMT (integer)T_FMT_AMPM (integer)ERA (integer)
ERA_YEAR (integer)ERA_D_T_FMT (integer)ERA_D_FMT (integer)ERA_T_FMT (integer)ALT_DIGITS (integer)
INT_CURR_SYMBOL (integer)CURRENCY_SYMBOL (integer)CRNCYSTR (integer)MON_DECIMAL_POINT (integer)LOG_PERROR (integer)
MON_THOUSANDS_SEP (integer)MON_GROUPING (integer)POSITIVE_SIGN (integer)NEGATIVE_SIGN (integer)INT_FRAC_DIGITS (integer)
FRAC_DIGITS (integer)P_CS_PRECEDES (integer)P_SEP_BY_SPACE (integer)
N_CS_PRECEDES (integer)N_SEP_BY_SPACE (integer)P_SIGN_POSN (integer)
N_SIGN_POSN (integer)DECIMAL_POINT (integer)RADIXCHAR (integer)THOUSANDS_SEP (integer)LOG_NOWAIT (integer)
THOUSEP (integer)GROUPING (integer)YESEXPR (integer)NOEXPR (integer)LOG_NDELAY (integer)
YESSTR (integer)NOSTR (integer)CODESET (integer)LOG_EMERG (integer)
LOG_ALERT (integer)LOG_CRIT (integer)LOG_ERR (integer)LOG_WARNING (integer)
LOG_NOTICE (integer)LOG_INFO (integer)LOG_DEBUG (integer)LOG_KERN (integer)LOG_USER (integer)
LOG_MAIL (integer)LOG_DAEMON (integer)LOG_AUTH (integer)LOG_ODELAY (integer)LOG_CONS (integer)
LOG_SYSLOG (integer)LOG_LPR (integer)LOG_NEWS (integer)LOG_UUCP (integer)LOG_CRON (integer)
LOG_AUTHPRIV (integer)LOG_LOCAL0 (integer)LOG_LOCAL1 (integer)LOG_PID (integer)LOG_LOCAL7 (integer)
LOG_LOCAL2 (integer)LOG_LOCAL3 (integer)LOG_LOCAL4 (integer)LOG_LOCAL5 (integer)LOG_LOCAL6 (integer)

Sobre as Variáveis


Existe suporte a apelidos?


Sim, PHP suporta apelidos. Uma vez que existam ponteiros na linguagem PHP, endereços de memória podem ser referenciados através de apelidos.


Qual é a faixa de valores das variáveis em função do tipo?


Tipo de dado inteiroFaixa de abrangenciaTamanho(bytes)
IntO tamanho de um inteiro é dependente de plataforma, sendo um numero aproximado a 2 bilhões o valor mais comum (número de 32 bits com sinal). O PHP não suporta inteiros sem sinal. O tamanho do inteiro pode ser determinado por PHP_INT_SIZE, o valor máximo para PHP_INT_MAX desde o PHP 4.4.0 e PHP 5.0.5.Depende da plataforma
FloatO tamanho de um número de ponto flutuante é dependente de plataforma, sendo o máximo de ~1.8e308 com uma precisão de 14 decimais digitais um valor comum (número de 64 bits no formato IEEE).Depende da plataforma
BooleanEste é o tipo mais facil. Um booleano expressa um valor de verdade. Ele pode ser TRUE ou FALSE.1
double (por razões históricas “double” é é retornado no caso de float, e não simplesmente “float”)Depende da plataforma

Tipos de declarações são aceitas (implícitas, explícitas, etc.)?


  • Uma declaração explícita é uma instrução em um programa que lista nomes de variáveis e especifica que elas são de um tipo particular
  • Uma declaração implícita é um meio de associar variáveis a tipos por convenções em vez de instruções

O PHP usa o tipo de Vinculação Dinâmica de tipos (JavaScript e PHP)

Vantagem:

  • Flexibilidade

Desvantagens:

  • Alto custo
  • Difícil detecção de erros

Existe suporte a vinculação dinâmica de tipos?


PHP suporta os seguintes tipos de dados:

  • Inteiro
  • Ponto flutuante
  • String
  • Array
  • Objeto

PHP utiliza checagem de tipos dinâmica, ou seja, uma variável pode conter valores de diferentes tipos em diferentes momentos da execução do script. Por este motivo não é necessário declarar o tipo de uma variável para usá-la. O interpretador PHP decidirá qual o tipo daquela variável, verificando o conteúdo em tempo de execução. Ainda assim, é permitido converter os valores de um tipo para outro desejado, utilizando o typecasting ou a função settype.

Uma vinculação é dinâmica se ocorrer durante a execução ou puder ser modificada no decorrer da execução de um programa.


Tipificação do PHP


O PHP é uma Linguagem fracamente tipada ou Dinamicamente tipada, pois estas linguagens são aquelas em que durante a execução do programa podem alterar o tipo de dados contido em uma variável. Permitem que o programador não tenha de fazer conversões de tipos (cast). Mais exemplos destas linguagens são Javascript e Perl.


Como é o escopo? Estático, dinâmico ou ambos?


O escopo das variáveis em PHP é estático, a definição das variáveis dinâmicas e estáticas devem ser realizadas antes da execução do programa.


Fontes:

 
php-2-trabalho.txt · Last modified: 2012/03/30 23:07 by clp · [Old revisions]