Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Нестандартные конструкции
Форумы портала PHP.SU » PHP » Программирование на PHP » Нестандартные конструкции

Страниц (1): [1]
 

1. Invert - 16 Декабря, 2010 - 07:34:16 - перейти к сообщению
Я вроде как долго программирую, но с некоторыми конструкциями в языке сталкиваюсь впервые.

Если кто объяснит или даст ссылку на ресурс, который максимально развернуто объясняет, буду очень благодарен.

Что за конструкции и способы их применения?:
PHP:
скопировать код в буфер обмена
  1. $jad = isset ( $_GET['jad'] ) ? TRUE : FALSE;

и с примера JustUserR
PHP:
скопировать код в буфер обмена
  1. $al_time=(integer)($al_time/1000000);
2. Uchkuma - 16 Декабря, 2010 - 08:57:01 - перейти к сообщению
Первое:
Тернарный оператор. Короткая запись, удобна при использовании в строках и в выводе echo, например. Абсолютно идентично:
PHP:
скопировать код в буфер обмена
  1. if(isset($_GET['jad'])){
  2. $jad = true;
  3. } else {
  4. $jad = false;
  5. }

Второе:
Присваиваемое значение $al_time приводится к целому.
3. Invert - 16 Декабря, 2010 - 09:02:45 - перейти к сообщению
Спасибо.

По поводу второго: (string), (bool), (array) ..?


Сейчас попробую поискать описания в мануале.
(Добавление)
Нашел,
http://www.php.su/learnphp/datatypes/?mn
4. OrmaJever - 16 Декабря, 2010 - 10:48:32 - перейти к сообщению
перед назвиние переменой можно поставить в скобках тип. в некоторых языках это обьзательно но в php интрерпритатор всё делает за нас.
(Добавление)
вот таким не хитрым способом переменая $str превращается во что угодно
PHP:
скопировать код в буфер обмена
  1. $str = '213asdsadas';
  2. $int = (int)$str;
  3. $bool = (bool)$str;
  4.  
  5. var_dump($str);
  6. var_dump($bool);
  7. var_dump($int);
5. Invert - 16 Декабря, 2010 - 11:05:44 - перейти к сообщению
Спасибо, я уже все понял.
И вроде (bool) там нет в списке.
6. Мелкий - 16 Декабря, 2010 - 11:30:24 - перейти к сообщению
OrmaJever пишет:
в некоторых языках это обьзательно

А можно пример языка? Однако
Это стандартная операция приведения типов в стиле С (замечу, что не в стиле С++, для которого данная возможность оставлена для совместимости но не предпочтительна для использования). Но обязательным для него не является, только принудительное указание компилятору сменить тип значения. Например из unsigned int 4294967294 получить -2 (signed int). Ну или чего-нибудь не столь искусственное.

Invert пишет:
И вроде (bool) там нет в списке.

А это что? http://www.php.su/learnphp/datatypes/?mn#boolean
7. Invert - 16 Декабря, 2010 - 11:36:24 - перейти к сообщению
Мелкий пишет:
А это что? http://www.php.su/learnphp/datatypes/?mn#boolean

Не заметил. Еще и удивился: А буля почему нет? =)
Нужно выспаться ...
8. OrmaJever - 16 Декабря, 2010 - 11:37:17 - перейти к сообщению
Мелкий пишет:
А можно пример языка?

я не помню. Я узнал про типы в php когда мне знакомый сказал. Говорил что типы в некоторых языках указывать обязательно.
9. JustUserR - 16 Декабря, 2010 - 19:40:30 - перейти к сообщению
Invert пишет:
И с примера JustUserR $al_time=(integer)($al_time/1000000);
Использование языка PHP предполагает возможность осуществление хранения информационных полей заданного типа в универсальных переменных - что включает требования возможности операции конверирования элементов выражений а также получения оригинальных значений без осуществления автоматического преобразования По этим причинам язык PHP поддерживает включение операций явного преобразование типов данных - а также операторов его идентификации и явного перевода компонентов в сооответствующий уровень представления
В конкретном рассматриваемом причине использование операции приведения к целому числу используется в качестве средства округления в меньшую сторону - однако во многих случаях такая операция может применяться и для более сложных преобразований
10. dsb80 - 17 Декабря, 2010 - 02:03:16 - перейти к сообщению
OrmaJever пишет:
в некоторых языках это обьзательно


В некоторых языках... например Pascal и его последователь Delphi - нужно указывать тип переменной при её инициализации, в начале кода, а в php инициализация происходит при первом обращении к переменной автоматически. В данном случае это конечноже конструкция языка приведения типов данных.
В некоторыхт языках есть вообще только 2 типа данных: числовые и командные, например Assembler.
11. Invert - 17 Декабря, 2010 - 06:16:10 - перейти к сообщению
dsb80 пишет:
например Assembler.

Ну вы вспомнили! Push eax вам за это.
12. JustUserR - 17 Декабря, 2010 - 20:35:00 - перейти к сообщению
dsb80 пишет:
А в php инициализация происходит при первом обращении к переменной автоматически
Использование языков программирование включюащих проведение актоматической типизиации элементов в действительности включает определение соответствующего параметра как для самой переменной так и некоторого выражения - в случае явного присваивания заданному элементу перемнной прозводится автоматическая типизация левостороннего выражения в соответствии с выбранным правосторонним выражением - или допустимая конвертация в зависимости от контекста В языка PHP переменные представлены в виде включей ассоциативного массива таблицы имен текущего пакетного пространтства - по этой причине все они фактчески являются определенными в любой момент времени и для них обеспечено хранение специального NULL-типа

 

Powered by ExBB FM 1.0 RC1