
Yan
21.08.2017
15:37:02

Herman
21.08.2017
15:37:20
Undefined variable
да, ошибки
пишет что нет мол такого объекта, когда внутри класса к нему обращаюсь

Google


Yan
21.08.2017
15:38:11
isset, empty, and unset
The isset, empty, and unset expressions are allowed in partial mode, but not in strict mode.
All three of them are irregularities in PHP’s syntax and semantics. They look like normal functions, but they’re not. They’re special-cased in PHP’s grammar so that it’s possible to pass undefined variables and index expressions (like $nonexistent['nonexistent']) without incurring warnings. They are also unusual in that the arguments you pass to isset and unset cannot be arbitrary expressions;2 you can only pass expressions that would be valid lvalues (i.e., expressions that could appear on the lefthand side of an assignment expression). This “looks-like-a-function-but-isn’t” phenomenon hurts language cleanliness, which is one argument against these features.
In Hack, there’s no reason to use isset or empty to test whether a variable is defined: it should be knowable, statically, whether a variable is defined at a given position.
For testing the existence of array elements, use the built-in function array_key_exists() instead of isset or empty. Don’t worry about performance: HHVM heavily optimizes calls to array_key_exists().
unset is a bit different. There’s simply no reason to use it on a variable in Hack. If you want to get the same effect, just assign null to the variable. In PHP, there’s one other reason to use unset on a variable—to break a reference relationship—but in Hack this isn’t necessary because references aren’t supported.
а я думал внутри isset что-то типа !== NULL


Herman
21.08.2017
15:38:13
надо через global его подключать?
внутри метода класса
объект

Никита
21.08.2017
15:38:40
постой притормози

Ильдар
21.08.2017
15:38:40
Глобал это плохо (

Никита
21.08.2017
15:38:42
какой глобал
ВЭЙТ Э СЭКОНД

Yan
21.08.2017
15:39:07
сбрось весь код

Alexander
21.08.2017
15:39:12

Никита
21.08.2017
15:39:19
какой метод

?
21.08.2017
15:39:22

Никита
21.08.2017
15:39:35
в твоем коде LoginSettings это другой класс

Google

Никита
21.08.2017
15:39:54
тебе нужно подключить в класс логин
класс логин сеттингс
через конструктор
Dependency Injection
вот это ковыряй)

Alexander
21.08.2017
15:40:32
и создать там экземпляр класса
и получишь доступ к методам и свойствам
ХОБА
магия, да?)

Maksim
21.08.2017
15:42:03
нет)

Like
21.08.2017
15:42:31

Herman
21.08.2017
15:43:32
потому что ты пишешь какую-то дичь)
Ок. А какую структура для ооп программы мне сделать? Я сейчас также этим вопросом задаюсь. Но мне кажется, будет хорошо если я создаю внутри одного места экземпляры классов, а потом с ними уже работать буду, оттуда же. Чтобы путаницы не было, когда внутри одного класса вызывается экземпляр другого итд...

F01134H
21.08.2017
15:43:43
с выходом 7.1 то

Herman
21.08.2017
15:44:28

Like
21.08.2017
15:45:02

Alexander
21.08.2017
15:45:40
(((((

Like
21.08.2017
15:45:55
Можно private сделать

Никита
21.08.2017
15:46:43

Google

F01134H
21.08.2017
15:46:49
nope
уже нет

Like
21.08.2017
15:46:53

Никита
21.08.2017
15:46:53
?
чертовы маркетологи

Like
21.08.2017
15:47:13
Быстрее всех будет KPHP

Никита
21.08.2017
15:47:19
вечно они рисуют эти красивые диаграмы

Alexander
21.08.2017
15:47:25

Никита
21.08.2017
15:47:25
где HHVM быстрее планеты всей
а там внизу мелкие шрифтики
при каких условиях оно быстрее

Like
21.08.2017
15:47:38

Никита
21.08.2017
15:48:07
Через геттеры?

Alexander
21.08.2017
15:48:16
но в любом случае, путаница может возникнуть

Like
21.08.2017
15:48:22

Alexander
21.08.2017
15:48:24
опечатался
сеттеры

Никита
21.08.2017
15:48:33
я тоже так подумал изначально
но решил, мало ли

Alexander
21.08.2017
15:48:42
виноват

Google

Никита
21.08.2017
15:48:46
может чего изобрели прямо изощренного)
мало ли)
я много чего не знаю(

Like
21.08.2017
15:49:24
типа
class Foo {
public function name() {
echo $this->a->something();
}
}
$foo = new Foo();
$foo->a = new Bar();
$foo->name();
?

Alexander
21.08.2017
15:49:31
я вообще не понимаю, зачем пихать логинСеттингс в класс логин

Like
21.08.2017
15:49:33
Не разу не видел такого
Или ты про обычные сеттеры?

Alexander
21.08.2017
15:49:39
почему не задать константы в самом классе?

Admin
ERROR: S client not available

Like
21.08.2017
15:50:09
Да и там ошибка по идеи будет

Alexander
21.08.2017
15:53:08
ты делаешь класс зависимым от логинСеттингс
больше зависимостей - больше секса при внесении изменений

Like
21.08.2017
15:53:44

Alexander
21.08.2017
15:54:10
от реализации конечно зависит много
но все же

Herman
21.08.2017
15:54:13
вместо global

Like
21.08.2017
15:54:20
А то сейчас запутаешься еще больше

Herman
21.08.2017
15:54:30
ну, сказали забыть про слово global

Google

Like
21.08.2017
15:54:33
Да

Дмитрий Maestro
21.08.2017
15:54:39
ребята книги по рефакторингу может кто посоветовать?

Herman
21.08.2017
15:54:42
использовать аргументы?
ну, мне нужна если переменная глобальная

Like
21.08.2017
15:54:49
Ну, да, наверное

Никита
21.08.2017
15:55:08

Herman
21.08.2017
15:55:22
ну мало ли

Никита
21.08.2017
15:55:27
много ли

Herman
21.08.2017
15:55:30
обработать какие-нибудь данные
внутри функции

Евгений
21.08.2017
15:55:43

Herman
21.08.2017
15:55:59
ну ок

Alexander
21.08.2017
15:56:07
Можешь использовать шаблон Регистр, хоба, решает проблему глобальных переменных

F01134H
21.08.2017
15:59:42

Like
21.08.2017
16:01:39
Минус куча дерьма

F01134H
21.08.2017
16:01:56
нет
просто это не пхп

Like
21.08.2017
16:02:03
Ой все

F01134H
21.08.2017
16:02:07
оно транслируется в плюсы