Форум: Медико-психологические вопросыСам себе юристО Жизни и про Жизнь
Новые темы: 000
PHP. Народные советы. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Головоломки на PHP для хакера (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Медико-психологические вопросы

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

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

 

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

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

тема: Учеба и web-разработка

Сообщения:  [1-10]    [11-20]   [21-30]  [31-32] 

 
 автор: Lstasss   (18.06.2009 в 13:20)   письмо автору
 
   для: Borec   (18.06.2009 в 10:56)
 

Думаю, что нет. "!" - оператор, не операнд. Если вы хотите присвоить переменной булево значение непосредственно, то
<?php
$a 
false;
$b true;
?>

  Ответить  
 
 автор: Borec   (18.06.2009 в 10:56)   письмо автору
 
   для: Lstasss   (17.06.2009 в 23:46)
 

Ловко, а в этом случае с правой стороны переменная обязательна ?

Такой пример $b = !; - валиден ?

  Ответить  
 
 автор: Lstasss   (17.06.2009 в 23:46)   письмо автору
 
   для: Borec   (17.06.2009 в 23:20)
 

Это и есть динамическое приведение типов))

Пример 1

<?php
$var 
'6'// строка
$x $var 0// число
?>

Сначала мы присваиваем переменной $var значение '6', т. е. строка, но в ней есть число.
Отнимая от строки с числом ноль мы получаем на выходе число.
С оператором плюс может не сработать - может произойти конкатенация, а вот минус - в самый раз подходит))
Ещё можно умножать и делить на 1, но вычитание нуля - самое быстрое (подумайте что происходит на процессорном уровне).


Пример 2
<?php
$var 
5//  число
$x $var .''//строка
?>


Было число, мы сконкатенировали его с пустой строкой и получили строку. Точка - оператор конкатенации в РНР.


Пример 3

<?php
$var 
4// число
$b = !!$var// булево значение true
?>


Было число, мы путём двойного отрицания получаем из него булево значение ИСТИНА. "!" - оператор отрицания. Смотрите:

<?php
$var 
4// число
$a = !$var// булево значение ЛОЖЬ
$b = !$a// булево значение true
?>


Просто !! (двойное отрицание) позволяет сэкономить на одной переменной и одной строчке кода ;-)

  Ответить  
 
 автор: Borec   (17.06.2009 в 23:20)   письмо автору
 
   для: Lstasss   (17.06.2009 в 18:39)
 

Можете прокомментировать примеры ?

Ну вообще конечно по-книжке можно разобраться, но тут попахивает динамическим приведением типов. Еще я не знаю смысла оператора "." .

  Ответить  
 
 автор: Lstasss   (17.06.2009 в 18:39)   письмо автору
 
   для: Borec   (17.06.2009 в 08:28)
 

Оно мне мешает косвенно, и даже не столько отсутствие контроля типов, сколько отсутствие необходимости объявления переменных.
Когда работал под Виндой писал в Notepad++, под Ubuntu - gedit.
Чтобы просмотреть переменные (если совершенно не знаете какие присутствуют в данном скрипте) можно сначала сделать
$vars = get_defined_vars();
а потом каждый элемент массива $vars по очереди var_dump() - отобразится вся информация о переменной.
Типами можно управлять явно, с помощью процедуры settype, или "неявно".
Под неявно я подразумеваю трюки типа
$var = '6'; // строка
$x = $var - 0; // число

и наоборот

$var = 5; //  число
$x = $var .''; //строка


а также

$var = 4; // число
$b = !!$var; // булево значение true


Эти трюки работают быстрее чем явное приведение типов с помощью функций.

  Ответить  
 
 автор: Lstasss   (17.06.2009 в 18:35)   письмо автору
 
   для: antf   (17.06.2009 в 04:27)
 

Вы правы, я имел в виду Etomite.Читается одинаково, потому и перепутал
Страшно читать что Вы там делали - не уверен что справился бы =)

  Ответить  
 
 автор: antf   (17.06.2009 в 09:31)   письмо автору
 
   для: antf   (17.06.2009 в 09:30)
 

Смысл в том, что некоторые фичи не поддерживались движком изначально, а надо было их сделать и не переписывать сам движок.

  Ответить  
 
 автор: antf   (17.06.2009 в 09:30)   письмо автору
 
   для: Borec   (17.06.2009 в 08:17)
 

Тут трудность не только в том, что код чужой и надо в нем разбираться прежде чем что-то делать. Проблема была в том, чтобы его правильно модернизировать, чтобы изменения не выглядели как плохо наложенные заплаты и были в тему.

CMS поддерживала работу с с пользователями (авторизацию, привилегии, разграничение доступа) только в админке. А нам надо было сделать в распознавание пользователей и в пользовательской части.

Как сделать функции редактирования/удаления/премодерации комментариев не выходя за рамки сниппета? Сниппет - кусок php-кода, который редактируется в textarea, вставляется в код шаблона или страницы с помощью тегов и исполняется с помощью eval. Модулей у этой CMS нет.

С этим всем справился.

  Ответить  
 
 автор: Borec   (17.06.2009 в 08:29)   письмо автору
 
   для: ols   (16.05.2009 в 10:17)
 

>Бил Гейтс тоже когда-то из-за программирования Вуз запустил. По-вашему он дебил? :)

Не он один. Артемий Лебедев - тоже. Причем Артемий хитрее поступил, он при этом программирование осваивать не стал :)

  Ответить  
 
 автор: Borec   (17.06.2009 в 08:28)   письмо автору
 
   для: Lstasss   (17.06.2009 в 02:05)
 

Кстати а как вам в РНР мешает отсутствие контроля типов ?

Поидее я никогда не писал на РНР, там вообще можно просматривать переменные и контролировать типы ? В 1С бросаешь переменную в "гляделки", она и значение и тип сразу показывает.

Вы каким редактором-отладчиком пользуетесь, а то что-то даже интересно стало ?

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]  [31-32] 

Форум разработан IT-студией SoftTime
вверх
Консультации от известных специалистов и авторов многих книг