Обучение/Помощь новичкам | Что не так с кодом?
c символами просто напросто будет синтаксическая ошибка. По логике int не предназначен для обработки чего то другого кроме чисел. ну тольео если не юзать доп функции обработки.
php
$page = isset($_GET['page']) ? (int) $_GET['page'] : null; if($page) { $p = 'Страница № ' . $page; } Какой substr(), а если ты не знаешь сколько там букв перед числом? Тогда уж preg_match()
Что ж тут не понятного, если ты указываешь переменной (int), он приводит к примеру строку в числовой формат. Если в переменной присутствуют буквы или символы, будет 0. Но тип integer. Переменную можно проверить так if($var) {} если 0 то false, вот тебе и валидация к примеру. А на счёт удаления лишнего из переменной где есть символы, можно использовать или регулярки или конкретные функции, а далее приводишь уже в integer формат. Надеюсь понятно выразился.
Что не так - при отсутствии параметра page будет ошибка, нужно проверять через isset() и фильтровать через abs(intval())
php
<?php if (isset($_GET['page'])) { $p = 'Страница №' . abs(intval($_GET['page'])); } Неправильно!
(int) лучше чем intval() тем что короче и более производителен, т.к. это языковая конструкция, а не функция. В больших циклах это может иметь значение. А еще приведения типа (int) пришли в пых прямиком из C (язык програмирования "си", ну ты понел), поэтому дают +10 к крутизне разработчика, их использующего
. И да, несколько чисел intval() не примет, это же не isset()
Еще один, давай еще регулярку вставь на проверку цифр
На чем написан пхп?
интерпретируемый язык.