За последние 24 часа нас посетили 17506 программистов и 1724 робота. Сейчас ищут 816 программистов ...

Статический класс и передача параметра

Тема в разделе "PHP для новичков", создана пользователем creage, 12 мар 2008.

  1. creage

    creage Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    131
    Симпатии:
    0
    Адрес:
    Киев
    Здравствуйте.

    Не знаю, правильно ли назвал тему, но суть вопроса в следующем:
    Есть класс, со статическими методами (класс Article, в нем методы типа get/post/update/delete). Методы работают с БД, и соответственно управляют записями. Конечно же, запросы выполняются через определенный ранее хендл коннекта к БД. Объект класса создавать не хочу, а хочу просто использовать его методы, типа Article::get(), или Article::post(). Внимание - вопрос. Как передать этот хендл в класс, чтобы он стал его свойством, но типа статическим? Вообще возможно ли это?
     
  2. Anonymous

    Anonymous Guest

    PHP:
    1. <?
    2. class someClass
    3. {
    4. public static $handle = null;
    5. function setHandle(&$handle)
    6. {
    7. self::$handle = $handle;
    8. }
    это что ли?
     
  3. creage

    creage Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    131
    Симпатии:
    0
    Адрес:
    Киев
    Да! Именно это! Спасибо огромное)

    По ходу написания кода у меня еще один вопрос появился. В коде одного из сторонних классов увидел определение функции с амперсандом
    Код (Text):
    1. function& connect($dsn)
    я бы понял, если бы было к примеру
    Код (Text):
    1. function &connect($dsn)
    но почему амперсанд стоит сразу после слова function? В доке не нашел...
     
  4. Anonymous

    Anonymous Guest

    очепятка, имхо.
     
  5. creage

    creage Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    131
    Симпатии:
    0
    Адрес:
    Киев
    разве? класс ведь работает, и ошибок не выдает. или PHP на такие опечатки не реагирует?
     
  6. Anonymous

    Anonymous Guest

    PHP:
    1. <?php
    2. error_reporting(E_ALL | E_STRICT);
    3. function& connect($dsn)
    4.     {
    5.      return null;
    6.     }
    7. connect(42);
    8. ?>
    Тем не менее, мистика. Первый раз такое вижу :) А видел, вроде, немало. Может кто еще подскажет :)
     
  7. Anonymous

    Anonymous Guest

    Проверил. Особенность синтаксического анализатора :)

    function& connect($dsn)
    function&connect($dsn)
    function &connect($dsn)

    Все три варианта работают абсолютно идеентично.