PHP Skills Tests: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
No edit summary
Line 163: Line 163:
Magical constants are constants that change value depending on where in the code they are placed.
Magical constants are constants that change value depending on where in the code they are placed.


The [http://php.net/manual/en/language.constants.predefined.php magical constants] in PHP are
The magical constants in PHP: <ref>[http://php.net/manual/en/language.constants.predefined.php magical constants], PHP documentation</ref>


* `__LINE__`
* `__LINE__`
Line 173: Line 173:
* `__METHOD__`
* `__METHOD__`
* `__NAMESPACE__`
* `__NAMESPACE__`
== Is `print()` a function? ==
`print()` is a language construct. <ref>[http://php.net/manual/en/function.print.php print()], PHP documentation</ref>
<syntaxhighlight lang="php">
echo ((function_exists("print"))?("y"):("n")); /* <<< output is "n" */
echo ((function_exists("printf"))?("y"):("n")); /* <<< output is "y" */
echo ((function_exists("echo"))?("y"):("n")); /* <<< output is "n" */
</syntaxhighlight>
== Notes ==
<references />

Revision as of 18:58, 15 March 2016

Operator precedence

PHP's operator precedence.

Associativity Operators Additional information
non-associative clone new clone and new
left [ array()
right ** arithmetic
right ++ -- ~ (int) (float) (string) (array) (object) (bool) @ types and increment/decrement
non-associative instanceof types
right ! logical
left * / % arithmetic
left + - . arithmetic and stirng
left << >> bitwise
non-associative < <= >= > comparison
non-associative == != === !== <> <=> comparison
left & bitwise and references
left ^ bitwise
left `| bitwise
left && http://php.net/manual/en/language.operators.logical.php logical]
left || logical
right ?? comparison
left ? : ternary
right = += -= *= /= .= %= &= |= ^= <<= >>= => assignment
left and logical
left xor logical
left or logical
left ,` many uses

Associativity

TK

Hexidecimal values

echo 0x500;
1280

This is hexidecimal notation. The value is calculated 0 * 1 = 0 + 0 * 16 = 0 + 5 * 256 = 1280.

Bitwise operators

Example Name Result
$a & $b And Bits that are set in both $a and $b are set.
`$a | $b Or (inclusive or) Bits that are set in either $a or $b are set.
$a ^ $b Xor (exclusive or) Bits that are set in $a or $b but not both are set.
~ $a Not Bits that are set in $a are not set, and vice versa.
$a << $b Shift left Shift the bits of $a $b steps to the left (each step means "multiply by two")
$a >> $b Shift right Shift the bits of $a $b` bits to the right (each step means "divide by two")
$a = (1<<0); /* $a = (0001) = (1*1) = 1 */
$b = (1<<1); /* $b = (0010) = (1*2) = 2 */

echo $b | $a; /* (0010 | 0001) = (0011) = ((1*2) + (1*1)) = 3 (bits set in either value are set in the result) */

is_numeric()

  • Valid values: "200", ".25e4", "20,2"
  • Invalid values: "$200"

Magical constants

Magical constants are constants that change value depending on where in the code they are placed.

The magical constants in PHP: [1]

  • __LINE__
  • __FILE__
  • __DIR__
  • __FUNCTION__
  • __CLASS__
  • __TRAIT__
  • __METHOD__
  • __NAMESPACE__

Is print() a function?

print() is a language construct. [2]

echo ((function_exists("print"))?("y"):("n")); /* <<< output is "n" */
echo ((function_exists("printf"))?("y"):("n")); /* <<< output is "y" */
echo ((function_exists("echo"))?("y"):("n")); /* <<< output is "n" */

Notes

  1. magical constants, PHP documentation
  2. print(), PHP documentation