Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 9 / 6
Регистрация: 31.03.2015
Сообщений: 65

Всем hi форумчаный! Воопрос по static -у

30.08.2016, 13:39. Показов 1649. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как вы думаете про этот код.
Я пишу все метод и свойтву через static а есть разница (ну там по скорости) с использованием и без использование static -а

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/**
 * User: Nurbakit
 * Date: 31.08.2016
 * Time: 13:25
 * DescEn: Url
 * DescRu: Урл
 */
 
/**
* 
*/
class Url
{
    /**
     * DescEn: Take the array data from the URL
     * DescRu: Взять в массив данные из УРЛ
     * string $key
     * @return array
     */
    public static function get($key = null)
    {
        $url = substr($_SERVER['REQUEST_URI'], 1);
        $url = rtrim($url, '/');
        $url = filter_var($url, FILTER_SANITIZE_URL);
        $url = explode('/', $url);
        if ($key != null) {
            return $url[$key];
        }
        return $url;
    }
 
    /**
     * DescEn: Counts as an array
     * DescRu: Считает сколько массив
     * @return int
     */
    public static function getCount()
    {
        return sizeof(self::get());
    }
 
    /**
     * DescEn: Return json url
     * DescRu: Вернет жсон урл
     * @param  string $funcName
     */
    public static function getJson($funcName)
    {
        $arr = array();
        for ($i = 0; $i < self::getCount(); $i++) {
            $arr += array(($i + 1) => self::get("{$i}"));
        }
        Response::success(array('url' => $arr));
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.08.2016, 13:39
Ответы с готовыми решениями:

Меню в бд есть воопрос!
Помогите сделать нормальное меню в Базе данных на паскале(оно должно переключатся между пунктами с помощью стрелок на клавиатуре ) с...

Как изменить свойство non-static объекта из static метода
Понимаю, что такое не задумано средствами Net Framework, но у меня из-за этого не работает одна фишка, которую я месяц писал, вообщем у...

Как правильно разместить static поверх других static-ов
Есть кнопка, нажимая на которую становится видно статик. проблема в том, что статик отображатеся сзади других статиков и кнопок. как...

32
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
30.08.2016, 13:55
Зачем ты так делаешь?
0
0 / 9 / 6
Регистрация: 31.03.2015
Сообщений: 65
30.08.2016, 21:33  [ТС]
Jewbacabra
Чтобы не загружать каждый раз new $className() так долго будет и ище через static код хорошо видна будет
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
30.08.2016, 21:50

Не по теме:

а ассембер еще быстрее будет...


Можно увидеть код, в котором статик методы работают быстрее обычных хотябы на 5 процентов?
0
0 / 9 / 6
Регистрация: 31.03.2015
Сообщений: 65
31.08.2016, 06:03  [ТС]
Jewbacabra
Это можно проста так узнать. Через new ClassName() ты загружает полный обьект метод и свойств. А через static ты загружает только метода или свойству.

А у меня все написано через static, я проста думаю если много static то может код долго будет загружать или я ошибаюсь

Добавлено через 9 минут
Jewbacabra

Вот полный код
https://drive.google.com/file/... sp=sharing
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
31.08.2016, 09:59
Цитата Сообщение от Nurbakit Посмотреть сообщение
Я пишу все метод и свойтву через static а есть разница (ну там по скорости) с использованием и без использование static -а
Ключевое слово static используют не для скорости. У него совершенно другое назначение.

static используется тогда, когда к методу или полю можно (нужно) обращаться без экземпляра класса.

Но суть в том, что в Вашем коде ООП нету вообще. Весь этот класс можно (нужно) заменить на 3 функции. Кстати работать будет еще быстрее
0
0 / 9 / 6
Регистрация: 31.03.2015
Сообщений: 65
31.08.2016, 10:26  [ТС]
А если через Singleton писать то быстрее будет же да
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
31.08.2016, 10:34
Nurbakit, за 5 минут можно самостоятельно проверить...
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
31.08.2016, 11:18
Nurbakit, нужно изучить OOD (объектно ориентированное проектирования), и применять полученные знания, а не заниматься ерундой, якобы по причине скорости.
0
0 / 9 / 6
Регистрация: 31.03.2015
Сообщений: 65
31.08.2016, 16:13  [ТС]
Jodah

Если можно было я бы уже проверял.
А там нужна много кода менять надо.

А так 3-4 static быстрее.

Если ты не понял вопроса!
У меня все все все метод и свойтву через static а есть разница (ну там по скорости) с использованием и без использование static -а

Добавлено через 1 минуту
Jewbacabra вырезано

Если не знаеш то не надо умничать
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
31.08.2016, 19:49
Цитата Сообщение от Nurbakit Посмотреть сообщение
я
Цитата Сообщение от Nurbakit Посмотреть сообщение
даун
Вы не правы во всем, еще и оскорбляете того кто говорит Вам дело.

Что то Вы явно делаете неправильно в этой жизни.
1
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
31.08.2016, 21:44
Цитата Сообщение от Nurbakit Посмотреть сообщение
Если можно было я бы уже проверял.
А там нужна много кода менять надо.
55 строчек (включая комментарии) - это для вас много? Не смешите.

Цитата Сообщение от Nurbakit Посмотреть сообщение
А так 3-4 static быстрее.
Вообще не понимаю, причём тут скорость. Подброшенный вверх молоток будет лететь быстрей подброшенной пилы. И что?
0
0 / 9 / 6
Регистрация: 31.03.2015
Сообщений: 65
01.09.2016, 05:51  [ТС]
Звоните в скайпу Jodah, pav1uxa
скайп: Не оставляйте свои данные

Добавлено через 10 минут
Еще раз смотрите что я спросил от вас а что отвечаете.

Добавлено через 40 секунд
Не надо умничать просто отвечайте на вопрос
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
01.09.2016, 05:56
Цитата Сообщение от Nurbakit Посмотреть сообщение
просто отвечайте на вопрос
Никто не обязан вам ни на что отвечать, тем более в скайпе, тем более если вам самому влом потратить 5 минут на проверку.
0
0 / 9 / 6
Регистрация: 31.03.2015
Сообщений: 65
01.09.2016, 06:01  [ТС]
Цитата Сообщение от Jodah Посмотреть сообщение
тем более если вам самому влом потратить 5 минут на проверку.
Это не 5 мин в коде нужна все static убрать и через обьект надо писать ты воопше писал по обьету и static -ми

Добавлено через 1 минуту
Цитата Сообщение от Jodah Посмотреть сообщение
Никто не обязан вам ни на что отвечать
А зачем ты отвечаеш не по теме
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
01.09.2016, 06:10
Цитата Сообщение от Nurbakit Посмотреть сообщение
Это не 5 мин в коде нужна все static убрать и через обьект надо писать
Это 5 мин.

Цитата Сообщение от Nurbakit Посмотреть сообщение
А зачем ты отвечаеш не по теме
Как же не по теме? Вот ваш вопрос:
Цитата Сообщение от Nurbakit Посмотреть сообщение
Я пишу все метод и свойтву через static а есть разница (ну там по скорости) с использованием и без использование static -а
И мой ответ - разница между ними не в скорости, а в применимости в различных ситуациях.

Ну да ладно, не хотите думать - ваши проблемы.
0
0 / 9 / 6
Регистрация: 31.03.2015
Сообщений: 65
01.09.2016, 06:15  [ТС]
Проста набери в скайп
0
 Аватар для Gcom
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
07.09.2016, 07:10
Цитата Сообщение от pav1uxa Посмотреть сообщение
Весь этот класс можно (нужно) заменить на 3 функции. Кстати работать будет еще быстрее
А можно посмотреть на результат того, как нужно делать?
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
07.09.2016, 11:44
Цитата Сообщение от Gcom Посмотреть сообщение
А можно посмотреть на результат того, как нужно делать?
Уберите из этого кода слова class Url{, } (в конце), public, static, self::. Можно поместить их в какой-нибудь namespace.
0
0 / 9 / 6
Регистрация: 31.03.2015
Сообщений: 65
08.09.2016, 04:47  [ТС]
Вот ответ!
В целом, скорость примерно одинакова, но все же в большинстве случае вызов статического метода требует меньше времени. Ну и однозначно меньше памяти, поскольку не требует создания объекта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.09.2016, 04:47
Помогаю со студенческими работами здесь

Ошибка: Cannot make a static reference to the non-static method
решил учить андроид. решил написать чат, но при создании сервера на Java по примеру на сайте у меня возникла ошибка: Cannot make a...

Ошибка “non-static method cannot be referenced from a static context”
Проблема в том, что в одном классе он просто сделать методы static, а в другом - требует обратного и я уже понятия не имею что сделать ...

Обращение к не static базе данных из static-метода
Есть у меня БД .sqlite . Она создаётся из не static метода: public IDbConnection database; public void SetupDb() { ...

Ошибка: non-static variable this cannot be referenced from a static context
Добрый вечер! Не пинайте сильно ногами, недавно решил взяться за обучение языку Java, что в мои годы уже подвиг сам по себе. Зубрю...

Как обратится к non static property из static метода
День добрый, сразу вопрос static - как правильно статический или статичный? У меня есть некий метод, у которого есть статичный метод...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru