Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Стиль оформления кода в PHP

Сообщения:  [1-10]   [11-17] 

 
 автор: Ralph   (27.08.2007 в 23:54)   письмо автору
 
   для: Trianon   (27.08.2007 в 23:12)
 

RLC/RRC/RAL/RAR по вам плачут :-D Вы еще пишете на PHP? Тогда ассемблер идет к вам !!! :)

   
 
 автор: Trianon   (27.08.2007 в 23:12)   письмо автору
 
   для: Trianon   (27.08.2007 в 21:15)
 

<?
$abc 
= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
     
. 'abcdefghijklmnopqrstuvwxyz'
     
. '0123456789+/';

function 
base64dec($data)
{   global 
$abc;
    
$sextets = strlen($data);

    for(
$res = '', $acm=0, $bits = 0, $i = 0; $i < $sextets; $i++)
    {
        if((
$nibble = strpos($abc, $data[$i])) === false)
            break;

        if(
$nibble >=64)
            continue;

        
$acm<<=6; $acm |= $nibble;

        if((
$bits += 6) >= 8)
            
$res .= chr($acm >> ($bits -= 8));
    }
    return 
$res;
}


Желающие могут нападать и на алгоритм и на стиль.
Но отбиваться буду яростно. То есть - молча.:)

   
 
 автор: bronenos   (27.08.2007 в 22:24)   письмо автору
 
   для: sms-send   (27.08.2007 в 14:08)
 

Моими руками он бы выглядел так:
<?php  
function base64dec($data) 
{ 
  global 
$alfabet; 

  
$sp = hexdec(substr($data, 0, 1)); 
  
$data = substr($data, 1); 
     
  for (
$i=0, $bin=''; $i<strlen($data); $i++)
  { 
      
$pos = strpos($alfabet, $data[$i]); 
      
$bin .= str_pad(decbin($pos), 6, '0', STR_PAD_LEFT); 
  } 
     
  if (
$sp != 0)
  {
    
$bin = substr($bin, 0, -intval($sp)); 
  }

  for (
$i=0, $res=''; $i<strlen($bin); $i+=8) 
  {
    
$res .= chr($t = bindec(substr($bin, $i, 8)));
  }

  return 
$res; 
} 
?>

   
 
 автор: Gemorroj   (27.08.2007 в 21:50)   письмо автору
 
   для: Trianon   (27.08.2007 в 21:15)
 

sms-send, насколько я в курсе ты еще на Delphi пишешь, это его дурное влияние =D
Лично я без фигурных скобок вообще не могу обойтись.

   
 
 автор: Trianon   (27.08.2007 в 21:15)   письмо автору
 
   для: Unkind   (27.08.2007 в 18:24)
 

Понятно. На мелком экране - пропустил.
Тогда алгоритм явно не отработан.

   
 
 автор: Unkind   (27.08.2007 в 18:24)   письмо автору
 
   для: Trianon   (27.08.2007 в 16:04)
 

> А оно нужно было - такой велосипед изобретать?
нужно было отработать сам алгоритм, для портирования в другой язык

   
 
 автор: sim5   (27.08.2007 в 18:15)   письмо автору
 
   для: sms-send   (27.08.2007 в 14:08)
 

>И ещё вопрос насчёт расположения операторов конструкции if-eseif-else. Как лучше?

Лучше наверное так:

<?
switch ($n) {
  case 
1: // блок операторов 1
          
break;
  case 
2: // блок операторов 2
          
break;
  case 
3: // блок операторов 3
          
break;
  default: 
// блок операторов по умолчанию 
}
?>

   
 
 автор: kasmanaft   (27.08.2007 в 17:45)   письмо автору
 
   для: sms-send   (27.08.2007 в 14:08)
 

> Может кто то перепишет и покажет на примере как должен выглядеть этот кусок кода?
Да кто его знает, как он должен выглядеть :) Может выглядеть по-Вашему, если этот стиль будет понятен всем из команды (и соответственно, все его будут придерживаться).
По стандартам PEAR этот код выглядел бы так: (или почти так)

<?php 
function base64dec($data)
{
    global 
$alfabet;
    
$sp   = hexdec(substr($data, 0, 1));
    
$data = substr($data, 1);
    
    for (
$i = 0, $bin = ''; $i < strlen($data); $i++) {
        
$pos = strpos($alfabet, $data[$i]);
        
$bin .= str_pad(decbin($pos), 6, '0', STR_PAD_LEFT);
    }
    
    if (
$sp != 0) {
        
$bin = substr($bin, 0, -intval($sp));
    }

    for(
$i = 0, $res = ''; $i < strlen($bin); $i += 8) {
        
$res .= chr($t = bindec(substr($bin, $i, 8)));
    }

    return 
$res;
}
?>


>Настойчиво рекомендуется использовать фигурные скобки, даже в том случае, когда их использование не является необходимостью.
>брр... в чем разница?
Думаю, имеется ввиду

if (true) {
  echo "it's true"; 
} else {
  echo "it's false";
}


> И ещё вопрос насчёт расположения операторов конструкции if-eseif-else. Как лучше?
Мне больше первый нравится. (только Вы забываете пробелы расставлять "В управляющих структурах между ключевым словом и открывающей круглой скобкой должен находиться пробел, чтобы отличать их от вызова функций.")
Как договорится группа перед кодированием, так и будет лучше)

   
 
 автор: Trianon   (27.08.2007 в 16:04)   письмо автору
 
   для: sms-send   (27.08.2007 в 03:50)
 

Извините, что не в тему...
А оно нужно было - такой велосипед изобретать?

base64_decode() никак не удовлетворяла?
В конце концов, если алфавит нестаднартный применяется, можно обложку написать

function base64dec($data) 
{
  global $alphabet;
  return base64_decode( strtr($data, $alphabet, "ABC...XYZabc...xyz01..89+/" ).'==');
}

   
 
 автор: sms-send   (27.08.2007 в 14:53)   письмо автору
 
   для: cheops   (27.08.2007 в 11:46)
 

>> "Чужие" стили меня раздражают и отвлекают от сути кода.
>С этим нужно бороться, так как при работе в команде не только необходимо читать код с чужим стилем, но и самому уметь его менять по первому требованию. Неплохо даже потренироваться их менять.

Именно по этому и создал тему, раньше меня это особо не беспокоило.

   

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования