Загадка про PHP

Загадка про PHP. Есть массив, описанный таким вот образом:

array (1, '4' => 1, 'a' => 1, 1);

Вопрос: сможете ли вы, не запуская PHP, сказать какой индекс будет у последнего элемента?

Дополнение: буква «a» в индексе — латинская

30 комментариев

Лабрис

Знаете ли вы что такое «лабрис»? И я не знал. Оказывается — «топор с симметрично расположенными по обе стороны топорища лезвиями» Подробнее: [ >>> ]

2 комментария

Загадка про PHP. Номер 2.

Даны два массива (специально вывожу индексы, буквы латинские):

$a = array (0 => 1, 'a' => 1, 1 => 1, 'b' => 1, 2 => 1, 'c' => 1);
$b = array (0 => 1, 'a' => 1, 'b' => 1, 2 => 1);

К каждому применили функцию ksort:

ksort($a);
ksort($b);

Вопрос: В каком порядке будут распологаться ключи массива $a и $b после применения функции ksort?

2 комментария

Загадка про PHP. Номер 3.

Дано:
$var = strval(TRUE-TRUE);
echo empty($var) ? 'empty' : 'full';

Что выведет оператор 'echo' и почему я не подставил первую строку сразу в empty?

39 комментариев

Загадка про PHP. Номер 4.

Задачка на действия с массивами. Какие значения выведет функция var_dump:

var_dump(array(-1) + array (1), (bool) array(), (bool) array(0));

3 комментария

Загадка про PHP. Номер 6.

Дано:

error_reporting(0);

$a = NULL;
var_dump(isset($a), isset($b));

$a = 1;
$b = &$a;
$c = &$b;

$b = NULL;
var_dump($c);

$a = 1;
$b = &$a;
$c = &$b;

unset ($b);
var_dump($c);

Сказать что выведет var_dump в каждом случае.

4 комментария

Загадка про PHP. Номер 7.

Загадка на static и unset. Дано:

function s()
{
static $a = 1;
echo $a++;
unset ($a);
}

array (s(), s());

Что будет на экране?

14 комментариев

Загадка про PHP. Номер 8.

Загадка на приоритеты. Дано:

$a = $b = 1;
var_dump($a---$b, $a, $b);

Что будет на экране?

6 комментариев

Загадка про PHP. Номер 9.

Загадка на ссылки и unset. Дано:

function a()
{
global $a;
unset($a);
$a = 2;
}

function b(&$a)
{
unset ($a);
$a = 2;
}

$a = 1;
a();
var_dump($a);

b($a);
var_dump($a);

Традиционно — что будет на экране?

4 комментария

Загадка про PHP. Номер B.

Дано:

$a = 'y';
$a++;
echo $a;

++$a;
echo $a;

$a+=1;
echo $a;

$a = $a+1;
echo $a;

Что получится?

4 комментария

Загадка про PHP. Номер D.

Задача для тех, кто не понимает разницы между строковыми («and») и C-шными (&&) булевыми операторами в PHP. Дано:

var_dump (2 || 2 and 0, 2 || 2 && 0)

Что увидим в результате?

5 комментариев

Загадка про PHP. Номер E.

Дано:

$a = array();
list ($a[], $a[]) = array (1,2);

Что будет в массиве $a?

2 комментария

Загадка про PHP. Номер F.

Дано:

error_reporting (0);
$months = array (1 => 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');

echo $months[date ('m')];

Что выведет echo, если на дворе август?

2 комментария

Загадка про PHP. Номер 10.

Дано:

error_reporting(0);

$a = 'Kn';
$a = new $a.'ock';

class Knock
{
  function Knock()
  {
    global $a;
    print_r($a);
  }
}

class Kn
{
  function Kn()
  {
    global $a;
   print_r($a);
  }
}

Что будет в результате?

16 комментариев

Загадка про PHP. Номер 11.

Задача на знание действия битовых операторов. Дано:

var_dump('0' ^ '9', 0 ^ 9, '9' & 2, TRUE & '9');

Какого типа будет каждый результат?

Оставить комментарий

Загадка про PHP. Номер 12.

Дано:

function Test1()
{
  function Test2()
  {
  }
}

var_dump(function_exists('Test2'));
Test1();
var_dump(function_exists('Test2'));

Что выведет функция var_dump в каждом случае?

10 комментариев

Факт из жизни PHP.

Когда-то, ещё во второй версии, функции в PHP определялись иначе. Синтаксис сменился в версии 3. Для того, чтобы программисты могли безболезненно перейти на новую версию, в PHP3 было введено новое ключевое слово old_function — для поддержки старого синтаксиса. Таким образом, переименованием function в old_function можно было портировать функции PHP/FI2 в PHP3. Шли годы, а синтаксис остался. Правда, мало кто знает как он выглядел. Так вот, если вы хотите поразить знакомых PHPшников, вставте в свою программу функцию вида:
old_function Test $a, $b (
     echo $a, $b;
);

Но помните, что этот синтаксис нерекомендован к использованию.

Оставить комментарий

PHP 2 C++

Появился транслятор PHP в C++, который, в итоге, позволяет получить бинарный код из программы PHP [ >>> ] Проект всё ещё разработке — так из огромного списка функций поддерживаются компилятором на данный момент всего 42. Проект располагается на SourceForge, так что, думаю, в разработку приглашаются все желающие. Интересно, как они реализуют eval? :)

2 комментария

PHP и значения по умолчанию.

Для того, чтобы присваивать в PHP переменным значения по умолчанию, я испокон веков использую следующую конструкцию:

isset($var) or $var = 'default';

Где, вместо $var подставляется ваша переменная, а вместо 'default' — значение, которое будет присвоено переменной, если она не определена.

Вообще я довольно широко использую «and» и «or», например, если мне надо выполнить вторую функцию, только если первая вернула «1» или «TRUE», я использую конструкцию

Check1($var) and Check2($var);

Наверное, сказывается влияние языка Perl — он мне привил любовь к языковым конструкциям.

13 комментариев