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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Указание версии языка

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Pavelbeginner
Отправлено: 21 Сентября, 2011 - 22:22:07
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




В html можно указать версию языка, которую используешь. А в php можно ли как-то указать, что использовал, например, синтаксис языка php 4? Или нужно подбирать сервер, на котором стоит интерпретатор той версии, которую ты использовал?
 
 Top
caballero
Отправлено: 21 Сентября, 2011 - 22:44:50
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




в HTML ты указываешь версию для браузера хотя в большинстве случаев это не имеет смысла

а в PHP кому будешь указывать
компилятор и сам разберется либо скомпилит либо нет


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
LIME
Отправлено: 21 Сентября, 2011 - 22:45:57
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ппц)))
(Добавление)
скажите интерпретатору что вы хотите 4 пхп а не 5пхп
и ответ сюда выложите)))
(Добавление)
тогда конечно поможем
а иначе недостаточно инфы
(Добавление)
убейте меня)))
 
 Top
OrmaJever Модератор
Отправлено: 21 Сентября, 2011 - 23:02:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Растерялся между прочим зря вы так, автор задал вполне нормальный вопрос.
Pavelbeginner к сожалению такого зделать нельзя, но така функция очень бы не помешала!


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Pavelbeginner
Отправлено: 21 Сентября, 2011 - 23:19:55
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




[quote=caballero]в HTML ты указываешь версию для браузера хотя в большинстве случаев это не имеет смысла[/quote]

Что значит не имеет смысла? Вы хоть знаете для чего предназначен doctype? Для того, чтобы указать по каким стандартам браузеру парсить код и как его интерпретировать. Стандартов куча, синтаксис разный, дефолтные значения css свойств разных тегов в разных версиях стандартов разные.

[quote=LIME]
ппц)))
(Добавление)
скажите интерпретатору что вы хотите 4 пхп а не 5пхп
и ответ сюда выложите)))
(Добавление)
тогда конечно поможем
а иначе недостаточно инфы
(Добавление)
убейте меня)))
[/quote]


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

[quote=OrmaJever][/quote]

Правильно ли я понимаю, что используя, например, синтаксис php 5, мне нужно искать сервер, на котором стоит интерпретатор именно этой версии языка?
(Добавление)
caballero пишет:
а в PHP кому будешь указывать
компилятор и сам разберется либо скомпилит либо нет


Лучше не пишите глупости. Для начала знайте, что php интерпретируемый язык с неким элементом компиляции в виде байт кода.
 
 Top
OrmaJever Модератор
Отправлено: 21 Сентября, 2011 - 23:32:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Pavelbeginner пишет:
Правильно ли я понимаю, что используя, например, синтаксис php 5, мне нужно искать сервер, на котором стоит интерпретатор именно этой версии языка?

да, если компилятор встретит непонятную синтаксическую конструкцию он выдаст Parse error.
(Добавление)
хотя можно самому делать велосипед и использовать phpversion(), но лутше найти нормальный хостинг с php 5.3 и жить станет легче Подмигивание


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
caballero
Отправлено: 22 Сентября, 2011 - 00:20:38
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
между прочим зря вы так, автор задал вполне нормальный вопрос

Не считая что поставил телегу впереди лошади.

Цитата:
Если бы такая функция была бы в php, то не нужно было бы подбирать сервер, на котором стоит именно та версия интерпретатора, которую Вы использовали.

То есть с помощью некоей функции вы бы заставили компилятор 4 версии работать с PHP5?


Цитата:
того, чтобы указать по каким стандартам браузеру парсить код и как его интерпретировать.

Браузеры чихать хотели на doctype. В лучшем случае туда заглядывают когда неоднозначная ситуация в коде.

Цитата:
Для начала знайте, что php интерпретируемый язык с неким элементом компиляции в виде байт кода.

А шо это за некий элемент? Язык либо интерпретируется либо компилируется. В байт код или машинный код сути дела не меняет.

Цитата:
хотя можно самому делать велосипед и использовать phpversion(),

Замечательно - вы написали код для синтаксиса 5.3 а функция вернула что там 5.2 и что дальше? Препроцессора у PHP ведь нет как у С и С++.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
OrmaJever Модератор
Отправлено: 22 Сентября, 2011 - 01:00:38
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




caballero пишет:
Замечательно - вы написали код для синтаксиса 5.3 а функция вернула что там 5.2 и что дальше? Препроцессора у PHP ведь нет как у С и С++.

зато есть самое обычное условие
PHP:
скопировать код в буфер обмена
  1. if(phpversion() == '5.3.5') { // надо додумать с условием но суть понятна
  2. $a = function() { echo 'lambda function';}
  3. const AA = 123;
  4. } else {
  5. $a = create_function('', 'echo "lambda function";')
  6. define('AA', 123);
  7. }

и так же можно запросто написать 2 разных класа которые делают практически одно и то же


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
caballero
Отправлено: 22 Сентября, 2011 - 01:13:36
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Это еще может проконать для функций а как быть с синтаксическими конструкциями типа namespaces

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


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Pavelbeginner
Отправлено: 22 Сентября, 2011 - 01:23:48
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




caballero пишет:
То есть с помощью некоей функции вы бы заставили компилятор 4 версии работать с PHP5?


Речь идет о том, чтобы был интерпретатор, который считывая первую строку php файла определял какая версия языка используется и вызывал соответствующую версию интерпретатора. Да обычную обертку можно сделать даже. Программа открывает файл, смотрит версию языка, делает системный вызов fork, затем exac нужного интерпретатора. Всё. В чем проблема так сделать было разработчикам?

caballero пишет:
Браузеры чихать хотели на doctype. В лучшем случае туда заглядывают когда неоднозначная ситуация в коде.


Сразу видно, что Вы ничего не знаете о браузерах и вообще о вебе и тем более не верстали ни одного сайта. Мне даже отвечать Вам после такого заявление не хочется. Вы не знаете азов.
caballero пишет:
А шо это за некий элемент? Язык либо интерпретируется либо компилируется. В байт код или машинный код сути дела не меняет.


Я промолчу.
 
 Top
caballero
Отправлено: 22 Сентября, 2011 - 01:42:28
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Речь идет о том, чтобы был интерпретатор, который считывая первую строку php файла определял какая версия языка используется и вызывал соответствующую версию интерпретатора. Да обычную обертку можно сделать даже. Программа открывает файл, смотрит версию языка, делает системный вызов fork, затем exac нужного интерпретатора. Всё. В чем проблема так сделать было разработчикам?


Мы говорим о том что есть а не фантазируем что могло быть. Никто так компиляторы не делает ни для одного языка. Программист подстраивается под версию а не компилятор содержит надцать версий за последние 10 лет и переключается между ними.


Цитата:
Сразу видно, что Вы ничего не знаете о браузерах и вообще о вебе и тем более не верстали ни одного сайта

вебом занимаюсь уже 10 лет. А если ты свято веришь в doctype то объясни проблемму кроссбраузерности сайтов

Цитата:
Я промолчу.


Лучше промолчать чем писать глупости. PHP с 4 версии уже не интерпретатор
то есть не выполняется построчно как раньше.
Только не надо про байт код а то окажется что Java и C# тоже интерпретаторы


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Мелкий Супермодератор
Отправлено: 22 Сентября, 2011 - 09:20:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Pavelbeginner пишет:
Указание версии языка

phpversion поможет.

Pavelbeginner пишет:
Или нужно подбирать сервер, на котором стоит интерпретатор той версии, которую ты использовал?

Если некорректно работает на более новой - исправлять/переписывать. Если же это не подразумевается, то да, найти хостинг, который поддерживает нужную версию.


-----
PostgreSQL DBA
 
 Top
Ch_chov
Отправлено: 22 Сентября, 2011 - 12:56:05
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Pavelbeginner пишет:
А в php можно ли как-то указать, что использовал, например, синтаксис языка php 4
PHP 4 в новых проектах уже давно никто не использует. Есть смысл подумать над выбором между 5.2 и 5.3.
У любого php скрипта есть системные требования. Если вы пишете скрипт, который использует возможности PHP 5.3 , то указывайте это в README или ещё где то. Самый простой вариант:

PHP:
скопировать код в буфер обмена
  1. if (version_compare(PHP_VERSION, '5.3.0') < 0)
  2.     exit('Для работы скрипта необходим сервер с поддержкой PHP 5.3');


caballero пишет:
И какой смысл писать два варианта кода который делает одно и то же если
один из вариантов будет работать в обоих версиях. Вы много проектов встречали где такую фигню бы городили?
Довольно много. Нативная php функция обычно быстрее самодельной. Если нет возможности её использовать, то во многих случаях имеет смысл сделать запасной вариант – fallback (пример).

(Отредактировано автором: 22 Сентября, 2011 - 13:00:25)

 
 Top
caballero
Отправлено: 22 Сентября, 2011 - 13:32:43
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
if (version_compare(PHP_VERSION, '5.3.0') < 0)
exit('Для работы скрипта необходим сервер с поддержкой PHP 5.3');

Такое есть смысл указываеть если это "коробочная" версия которую кто то может пытатся ставить (ЦМС, фрамеворк и т.д.)

(Отредактировано автором: 22 Сентября, 2011 - 13:34:03)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB