Задачки на знание 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-программист: программирование сайтов, интернет-магазинов, порталов 
