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 :: namespace видает ошибку

 PHP.SU

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


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

> Без описания
dadli
Отправлено: 23 Апреля, 2012 - 12:08:22
Post Id



Посетитель


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


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




здравствуите
в пхп фаиле есть толко етот код
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. namespace Foo;
  3. ?>

видает ошибку
Цитата:
Fatal error: Namespace declaration statement has to be the very first statement in the script in

не понимаю из за чего ето ошибка. верся пхп 5.3.3, ОС виндовс.
 
 Top
Мелкий Супермодератор
Отправлено: 23 Апреля, 2012 - 12:16:37
Post Id



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


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


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




BOM, похоже.


-----
PostgreSQL DBA
 
 Top
dadli
Отправлено: 23 Апреля, 2012 - 12:18:27
Post Id



Посетитель


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


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




Мелкий
даа точно, спасибо огромное
 
 Top
Okula
Отправлено: 23 Апреля, 2012 - 13:46:36
Post Id



Участник


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


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




вообще не понимаю зачем в PHP 5.3 сделали пространство имён, ведь это практически тоже самое что писать инклуды в каждом файле. Хм
 
 Top
DelphinPRO
Отправлено: 23 Апреля, 2012 - 17:14:19
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




тоже не понимаю этой фишки Недовольство, огорчение
перечитал мануалы, кучу статей, но так и не понял в чем профит

Нужно либо неймспейсы прописывать в начале каждого файла (равносильно инклудам)
Либо длинные имена типа
$c = new \my\namespace\for\Class();

Может кто-то объяснит простыми словами?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
OrmaJever Модератор
Отправлено: 23 Апреля, 2012 - 17:16:08
Post Id



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


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


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




Вещь полезная но в php они очень коряво реализированы!


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
caballero
Отправлено: 23 Апреля, 2012 - 18:33:50
Post Id


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


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


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




Цитата:
вообще не понимаю зачем в PHP 5.3 сделали пространство имён, ведь это практически тоже самое что писать инклуды в каждом файле.

не то же самое - по неймспейсам можно автолоад делать - в этом и смысл
что могут быть классы с похожими именами в разный неймспейсах
не надо файлам давать имена типа cms_user_accout_view

Неудоббство только что нету как в яве * подключать сразунесколько


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Crate
Отправлено: 23 Апреля, 2012 - 19:07:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


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




Okula пишет:
вообще не понимаю зачем в PHP 5.3 сделали пространство имён, ведь это практически тоже самое что писать инклуды в каждом файле.
Смысл будет понятен, когда будете движки склеивать, у который функции совпадают.
 
 Top
Okula
Отправлено: 23 Апреля, 2012 - 20:09:57
Post Id



Участник


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


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




По мне так удобнее в имени класса делать разделитель (типа нижнего подчёркивания), чем писать лишние килобайты кода.
Автоматически можно подгружать и классы с такими именами: User_Loads и т.д. Тому пример шаблонизатор Twig, от разработчиков фреймворка symfony.
 
 Top
DelphinPRO
Отправлено: 23 Апреля, 2012 - 22:01:11
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




caballero пишет:
по неймспейсам можно автолоад делать - в этом и смысл

по _ тоже прекрасно делается автолоал Улыбка

caballero пишет:
не надо файлам давать имена типа cms_user_accout_view

зато надо писать \my\namespace\for\Class::$prop;
что короче? (вопрос риторический.)

одинаковые имена классов в разных пространствах - сомнительное преимущество.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
OrmaJever Модератор
Отправлено: 23 Апреля, 2012 - 22:21:27
Post Id



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


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


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




DelphinPRO пишет:
зато надо писать \my\namespace\for\Class::$prop;

Ну напишите вначале
PHP:
скопировать код в буфер обмена
  1. using \my\namespace\for\Class;
  2. Class::$prop;

точно не помню синтаксис php, но должно быть так. У пространства имён есть большое преймущество, но в двух словах его не описать.
Вы все так переживаете про лишние символы в названии класса, можно написать так
PHP:
скопировать код в буфер обмена
  1. using namespace \my\namespace\for;

и дальше мы можем использовать весь код этого пространсва без его названия. Вы предираетесь к мелочам типа лишней строки кода, но иногда очень полезная весч. Вот была тема где человек хотел обьеденить 2 цмс, но у них были одинаковые имена функций, а если бы в каждой код был в своём пространстве было бы всё по другому. Вот ещё пример из Си, есть огромный фреймворк Qt, в нём около сотни классов и куча функций и имена этих функций самые читаемые, и вот если бы весь фреймворк небыл в своём пространстве я бы не смог создавать функции с такими же именами или классы или ещё что-то.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DelphinPRO
Отправлено: 23 Апреля, 2012 - 23:13:39
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




OrmaJever пишет:
У пространства имён есть большое преймущество, но в двух словах его не описать.

видимо придется попробовать в действии, чтобы ощутить ту прелесть, о которой все поют дифирамбы Улыбка
OrmaJever пишет:
Вы предираетесь к мелочам
Не придираюсь. Пытаюсь понять целесообразность использования.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Okula
Отправлено: 23 Апреля, 2012 - 23:39:34
Post Id



Участник


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


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




OrmaJever пишет:
Вы предираетесь к мелочам типа лишней строки кода

Вот только эти "лишние" строки замедляют разработку проекта, ведь на них тоже нужно потратить время на набор символов Улыбка.
 
 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