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]   

> Описание: По докементации это невозможно, но на практике совсем наоборот
nazar-pc
Отправлено: 04 Апреля, 2011 - 00:37:36
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2011  
Откуда: Украина, Киев


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




Вот простой пример, вопрос только один, почему это вообще работает?:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $var = 0;
  3. $$var = 5;
  4. echo $$var;
  5. ?>

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class test {
  3.         function __construct () {
  4.                 $var = 0;
  5.                 $this->$var = 'test';
  6.         }
  7. }
  8. $object = new test;
  9. $var = 0;
  10. print_r($object);
  11. echo $object->$var;
  12. ?>

Напрямую значение не получить никак, а через одно место - можно Не понял !
 
 Top
Мелкий Супермодератор
Отправлено: 04 Апреля, 2011 - 00:43:39
Post Id



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


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


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




Ну примерно так же, как и тут: http://forum.php.su/topic.php?fo...84880#1301084880

Через одно место можно очень многое!


-----
PostgreSQL DBA
 
 Top
nazar-pc
Отправлено: 04 Апреля, 2011 - 15:49:39
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2011  
Откуда: Украина, Киев


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




Мелкий пишет:
Ну примерно так же, как и тут: http://forum.php.su/topic.php?fo...84880#1301084880

Через одно место можно очень многое!


А кто-то знает, почему это не профиксили в php 5.3, или не разрешили создавать переменные, начинающиеся с цифр по-человечески?

Просто мне нужна в одном проекте поддержка вот таких вот названий, но каково было моё удивление, когда это заработало, и вообще такая штука вызывает неопределённость на будущее относительно этого вопроса
 
 Top
EuGen Администратор
Отправлено: 04 Апреля, 2011 - 16:02:43
Post Id


Профессионал


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


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




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


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
grefon
Отправлено: 04 Апреля, 2011 - 16:35:19
Post Id



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


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


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




EuGen пишет:
Не стоит называть переменные именами, начинающимися с цифр.

Можно поинтересоваться почему? Растерялся


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
nazar-pc
Отправлено: 04 Апреля, 2011 - 16:41:06
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2011  
Откуда: Украина, Киев


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




EuGen пишет:
Думаю, нет ни одной причины, по которой нельзя без этого обойтись

Мне нужно обрабатывать зеркализацию БД в движке, и выбирать разные БД и разные их зеркала.
Таким образом, в классе, который обрабатывает все подключения мне нужно задать свойства, которые будут ссылками на объекты с подключенными БД.

На словах всё запутанно, но для БД с индексами 0,1,2,3... удобнее делать такие же свойства, а не какие-то уникальные псевдонимы, которые потом нужно обрабатывать.
 
 Top
OrmaJever Модератор
Отправлено: 04 Апреля, 2011 - 17:16:43
Post Id



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


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


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




nazar-pc пишет:
А кто-то знает, почему это не профиксили в php 5.3, или не разрешили создавать переменные, начинающиеся с цифр по-человечески?

но ведь фактически в названии нету цыфр. $$var
nazar-pc пишет:
Просто мне нужна в одном проекте поддержка вот таких вот названий

Вот может по этому оно и работает?

(Отредактировано автором: 04 Апреля, 2011 - 17:17:12)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
nazar-pc
Отправлено: 04 Апреля, 2011 - 17:22:56
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2011  
Откуда: Украина, Киев


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




OrmaJever пишет:
nazar-pc пишет:
А кто-то знает, почему это не профиксили в php 5.3, или не разрешили создавать переменные, начинающиеся с цифр по-человечески?

но ведь фактически в названии нету цыфр. $$var
nazar-pc пишет:
Просто мне нужна в одном проекте поддержка вот таких вот названий

Вот может по этому оно и работает?


Фактически нет, но переменная ведь начинающаяся с цифры есть! Значит должен быть человеческий способ получить к им доступ.
Когда делаю:

То переменную видно как и все остальные - значит разработчики чего-то недосмотрели.
И вообще не вижу объективных причин для запрета переменных начинающихся с цифр, в таком ведь виде прекрасно работает...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB