«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2018/09/23 09:50:32  №1268762 1
Ребзя, а чому вы не юзаете форматированный вывод строк при помощи printf? Глаз упал на

> I am $age years old

Чому переменную не обрамляете фигурными скобками? Раньше это было чуть ли не стандартом: ${var} или {$var} в строке.
Аноним 2018/09/23 18:43:37  №1269162 2
>>1268762
скобки не нужны ровно до тех пор пока не понадобится вплотную написать текст к значению переменной и подобное

printf следует использовать для _форматированного_ вывода только когда нужен _форматированный_ вывод, как бы нелогично не звучало
Ответы: >>1269212
Аноним 2018/09/23 20:08:39  №1269212 3
>>1269162
Твои слова расходятся с написанным в шапке.

Чем форматированная строка хуже echo? Как по мне, проще самому управлять выводом. Особенно, когда используешь строгую типизацию. Приучает к дисциплине и ещё больше походит на божественный Си.
Ответы: >>1269221 >>1269242
Аноним 2018/09/23 20:18:57  №1269221 4
>>1269212
>строгую типизацию
Сынок, потише в этом треде с умными словами, особенно когда не знаешь значений
У твоей "божественной" Си слабая типизация как и у ПХП
Ответы: >>1269235
Аноним 2018/09/23 20:29:49  №1269235 5
>>1269221
В смысле?

int i = 2; это разве не строгая типизация?! Или когда в аргументах функции пишешь что-то навроде float d = 5.
Ответы: >>1269315 >>1269516
Аноним 2018/09/24 10:49:49  №1269433 6
Давно я таких анальных ошибок не видел: не могу создать таблицу с колонкой group. Подставляю вместо group абсолютно любое слово - создается.
Ответы: >>1269434 >>1269438 >>1269439
Аноним 2018/09/24 10:58:58  №1269439 7
>>1269433
Да, так бесит эта MySQL, был баг, что одним запросом формы, создавалось 2 записи в таблице, 10 раз перепроверил метод который создаёт запись в таблице, ничего не нашел.
Потом психанул написал запрос на этой же странице, и все стало нормально создавать. Или когда уже уставший пишешь запрос и где-то проебал запятую в SQL запросе, то это пиздец, потом в куче текста эту запятую хуй найдёшь.
Ответы: >>1270396
Аноним 2018/09/24 13:11:06  №1269516 8
>>1269235
Строгая это:
int a = 1;
float b = 2;
float c = b + (float)a;
Ответы: >>1269640
Аноним 2018/09/24 15:39:32  №1269640 9
>>1269516
Выше говорят, что это статическая типизация. Правда я так особо и не вкурил в чём радикальное отличие статической/слабой типизации от сильной/строгой. Что-то пишут овердохуя про ООП, но я ниасилил. Может в ООП это и есть слабая типизация, а на уровне объявления переменных не является таковой.
Ответы: >>1270396
Аноним 2018/09/26 01:37:16  №1270396 10
>>1269640

Статическая типизация - типы переменных известны в момент написания программы (обычно это значит что они явно указаны в коде), например:

int a = 1;

Соответственно, компилятор может проверить корректность типов до выполнения кода.

Динамическая - типы не известны до выполнения программы:

$a = calc();

function calc() {
....
}

Сильная/слабая - при слабой типизации язык может преобразовывать типы (например, в выражении "2" + 2 язык может автоматичеки преобразовать строку "2" в число), при сильной это надо делать явно, иначе будет ошибка.

https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B8_%D1%81%D0%BB%D0%B0%D0%B1%D0%B0%D1%8F_%D1%82%D0%B8%D0%BF%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F

>>1269439

Это что-то с твоим кодом. Если что, есть паттерн Post/Redirect/Get для защиты от повторной отправки формы.
Ответы: >>1270404
Аноним 2018/09/26 02:29:49  №1270404 11
>>1270396
>(например, в выражении "2" + 2 язык может автоматичеки преобразовать строку "2" в число)
Нет, это не слабая типизация. Это неявное преобразование типов.

Смотри на Си. ты не можешь там сделать "2" + 2, так чтобы он на лету преобразовал строку "2" в число 2. При этом у Си - слабая типизация.
Ответы: >>1270420
Аноним 2018/09/26 04:53:26  №1270420 12
>>1270404
Ну все правильно он сказал
Ты не можешь "2" + 2 в С сделать, но
void *ptr можешь кастовать хоть во что
или enum с целыми неявно смешивать
именно поэтому слабая
Ответы: >>1270427 >>1270433
Аноним 2018/09/26 05:04:31  №1270427 13
>>1270420
Хотя даже тут ты наврал и меня запутал
>> "2" + 2
для С норм, потому что "2" указатель на константную строку
Ответы: >>1270431
Аноним 2018/09/26 05:28:03  №1270431 14
>>1270427
И сколько у тебя получится?

Читай внимательно
>ты не можешь там сделать "2" + 2, так чтобы он на лету преобразовал строку "2" в число 2