$operation = "+";
$a = 66;
$b = 13;
switch ($operation) {
default : $c = 0;
case "+": $c = $a + $b;
case "-": $c = $a - $b;
}
echo $c;
79
0
null
Возникнет ошибка выполнения сценария
53
$a = 3;
$b = '3';
if ($a === $b)
echo '$a равно $b';
else eсho '$a не равно $b';
Ошибка
3 не равно 3
3 равно 3
$a не равно $b
$a равно $b
Пояснение: знак "===" сравнивает не только значение но и их типы.
for ($j = 0; $j < count($MyArray); $j++) {
echo($MyArray[$j]);
}
Обход массива.
Определение запросов в переданный массив.
Вызов массива.
Вывод содержимого массива.
Добавление в массив.
$var = 1 + "-1.3e3";
echo $var;
1-1.3e3
-1299
Ошибка: невозможно сложить целое число и строку
1
$str1 . $str2
cat($str1, $str2)
$str1 + $str2
fprintf($str1, $str2)
join($str1, $str2)
$size = X(filename);
sizeofFile
getSize
size
filesize
@$var
$0x0
${0x0}
$var
&$var
<?php
function
vec_add (&$a, $b)
{
$a['x'] += $b['x'];
$a['y'] += $b['y'];
$a['z'] += $b['z'];
}
$a = array ('x' => 3, 'y' => 2, 'z' => 5);
$b = array ('x' => 9, 'y' => 3, 'z' => -7);
vec_add ($a, $b);
print_r ($a);
?>
Array
(
[x] => 9
[y] => 3
[z] => -7
)
Array
(
[x] => 3
[y] => 2
[z] => 5
)
Array
(
[x] => 12
[y] => 5
[z] => -2
)
Ошибка
Ничего из вышеперечисленного
serialize
glue
serial
implode
string
integer
float
char
array
object
echo 'foo' . 42 + 'bar' . 'qwe';
0
foo42qwe
42qwe
0qwe
Пояснение:
Приоритеты операторов + и . одинаковы. Оператор + преобразует строковые операнды в числа, поэтому 'foo42' + 'bar' равно 0.
Операции выполняются по порядку слева направо. При этом каждый раз происходит преобразование типов:
1) 'foo' . 42 => 'foo' . '42' => 'foo42'
2) 'foo42' + 'bar' => 0 + 0 => 0
3) 0 . 'qwe' => '0' . 'qwe' => '0qwe'
convert()
strip_tags()
htmlentities()
nl2br()
throw Exception('Houston, we have a problem!');
raise Exception('Houston, we have a problem!');
alert 'Houston, we have a problem!';
call 'Houston, we have a problem!';
throw new Exception('Houston, we have a problem!');
print_r("Hello World", true);
true
Hello World
Hello World true
Ничего не будет напечатано
Произойдет синтаксическая ошибка
Пояснение: mixed print_r ( mixed $expression [, bool $return ] )
"Если Вы хотите перехватить вывод print_r(), используйте параметр return. Если его значение равно TRUE,
то print_r() вернет результат вывода вместо вывода в браузер (который производится по умолчанию)."
$Rent = 250;
function Expenses($Other)
{
$Rent = 250 + $Other;
return $Rent;
}
Expenses(50);
echo $Rent;
300
250
Возникнет ошибка
200
function newUser(&userName)
function &newUser($userName)
function $newUser($userName)
function _newUser(_$userName)
function ::newUser(::$userName)
<form name="myform">
<select name="flavor">
<option value="choc">Chocolate</option>
<option value="strb">Strawberry</option>
<option value="vnla">Vanilla</option>
</select>
<input type="submit" name="submit" value="Go"/>
</form>
$flavor = $_POST["flavor"];
$flavor = $GET["flavor"];
$flavor = $PUT["flavor"];
$flavor = $_GET["flavor"];
$flavor = $REQUEST["flavor"];
$а = 2;
$b = аrrаy(&$а => 1);
$a = 4;
array(2 => 1)
array(4 => 1)
NULL, сгенерируется предупреждение
Возникнет критическая ошибка, выполнение остановится
Возникнет ошибка синтаксиса
Пояснение: Ссылку на ключ массива вообще никак нельзя создать. Для этого (и не только) на операции со ссылками накладываются серьёзные ограничения уже в синтаксисе.
1) <?php
2) $newfile = fopen("path/to/new/file/mydata.txt", "a+");
3) fwrite($newfile ++, "This is a new file.");
4) fclose($newfile);
5) echo "All done!";
Убрать ++
Поменять ++ на ==
Поменять ++ на +=
Удалить параметр "This is a new file."
Поменять ++ на &&