Задачки на знание PHP для начинающих
Предскажите результаты работы фрагментов кода
1. Переменные в index.php
<?
$GLOBALS['x']=2;
$x=3;
echo $GLOBALS['x'];
<?
$GLOBALS['x']=2;
$x=3;
echo $GLOBALS['x'];
2. Тип ключа массива
<?
$A1=array('1' => '2');
list($key,$val)=each($A1);
echo 'key: '.$key."<br/>\n";
echo 'val: '.$val."<br/>\n";
echo gettype($key)."<br/>\n";
echo gettype($val);
<?
$A1=array('1' => '2');
list($key,$val)=each($A1);
echo 'key: '.$key."<br/>\n";
echo 'val: '.$val."<br/>\n";
echo gettype($key)."<br/>\n";
echo gettype($val);
3. Порядок сравнения
<?
echo intval('string'==0)."<br/>\n";
echo intval('string'==1)."<br/>\n";
echo intval('string'==true)."<br/>\n";
echo intval('string'==false)."<br/>\n";
<?
echo intval('string'==0)."<br/>\n";
echo intval('string'==1)."<br/>\n";
echo intval('string'==true)."<br/>\n";
echo intval('string'==false)."<br/>\n";
4. Ловушки
<?
$Data=array('Data' => null,'x' => 'test');
foreach ($Data as $key => $value)
{
$$key=$value;
}
echo '<pre>';
print_r($Data);
echo '</pre>';
echo '<pre>';
print_r($x);
echo '</pre>';
<?
$Data=array('Data' => null,'x' => 'test');
foreach ($Data as $key => $value)
{
$$key=$value;
}
echo '<pre>';
print_r($Data);
echo '</pre>';
echo '<pre>';
print_r($x);
echo '</pre>';
5. method_exists()
vs is_callable()
<?
class Test
{
function x() {echo __FUNCTION__;}
private function y() {echo __FUNCTION__;}
function __call ($name,array $Args)
{
// ...
}
}
$Test=new Test;
echo intval(method_exists($Test,'x'))."<br/>\n";
echo intval(is_callable(array($Test,'x')))."<br/>\n";
echo "<br/>\n";
echo intval(method_exists($Test,'y'))."<br/>\n";
echo intval(is_callable(array($Test,'y')))."<br/>\n";
echo "<br/>\n";
echo intval(method_exists($Test,'z'))."<br/>\n";
echo intval(is_callable(array($Test,'z')))."<br/>\n";
echo "<br/>\n";
<?
class Test
{
function x() {echo __FUNCTION__;}
private function y() {echo __FUNCTION__;}
function __call ($name,array $Args)
{
// ...
}
}
$Test=new Test;
echo intval(method_exists($Test,'x'))."<br/>\n";
echo intval(is_callable(array($Test,'x')))."<br/>\n";
echo "<br/>\n";
echo intval(method_exists($Test,'y'))."<br/>\n";
echo intval(is_callable(array($Test,'y')))."<br/>\n";
echo "<br/>\n";
echo intval(method_exists($Test,'z'))."<br/>\n";
echo intval(is_callable(array($Test,'z')))."<br/>\n";
echo "<br/>\n";
6. Исключение из конструктора
<?
class Test
{
function __construct()
{
throw new Exception;
}
}
try
{
$T=new Test;
}
catch (Exception $E)
{
// ...
}
echo '<pre>';
print_r($T);
echo '</pre>';
<?
class Test
{
function __construct()
{
throw new Exception;
}
}
try
{
$T=new Test;
}
catch (Exception $E)
{
// ...
}
echo '<pre>';
print_r($T);
echo '</pre>';
7. Наложение типа array
на объект ^_^
<?
class Test
{
public $x;
private $y;
}
$T1=new Test;
$T2=(array)$T1;
echo '<pre>';
print_r($T2);
echo '</pre>';
<?
class Test
{
public $x;
private $y;
}
$T1=new Test;
$T2=(array)$T1;
echo '<pre>';
print_r($T2);
echo '</pre>';
Продолжение следует...
Автор: Клешнин Иван
Полезное
- Подсветка php-кода для сайта
- Сколько зарабатывают веб-разработчики?
- Рассуждения о задачах разработчика
- Правила работы с UTF-8
- Подходы к реализации меню
CMS MODx
CMS MODx — админка
PHP
- Слияние массивов в PHP
- Задачки на знание PHP для начинающих
- Unable to load dynamic library php_curl.dll
- Изображение [] не может быть показано, так как содержит ошибки.
БД
JS, jQuery
Партнёрам по цеху
Copyright © 2008 scabbiaza.net
PHP-программист: программирование сайтов, интернет-магазинов, порталов