Типа класса, которые постоянно создаются, что бы в вместе учить php работая над учебными проектами/заданиями?
Нет, официальных курсов тут нет. А если и появятся, то, скорее всего, будут платными, потому что такие "классы" требуют уйму физического реального вполне себе такого времени со стороны преподавателя. А время = деньги.
если $ss правда > 4 то вывести цифру 1, в ином случае вывести 0. чего не так? и какая функция может показать $res=(mb_strlen($val)) > 4; $res=true или $res=false? Код (Text): <?php function aha ($val="") { $res=(mb_strlen($val)) > 4; return $res; } ?> <?php $ss="3231223"; aha($ss); echo $res; if ($res=true) { echo "1"; } else {echo "0";} ?>
одиночный знак "=" - это присваивание. Вам нужно сравнение. Сравнений в PHP 2 вида: 1) Без учета типа данных, с неявным приведеним, это оператор "==" 2) С учетом типа данных, без приведения, это оператор "===". if ($res=true) значит "возьми $res и запиши туда true, а потом проверь, что там лежит". А там всегда лежит true.
Ты объявил функцию, которая возвращает $res. Но это не глобальная переменная. Это просто результат функции. Наружу не будет сделан экспорт этих данных при вызове. Эта переменная внутри функции может называться как угодно, и живет она только там. Наружу после отработки возвращается только конечное значение. Далее. Ты делаешь вызов функции, она отрабатывает и возвращает значение вникуда. Потому что ты его никуда не присвоил. PHP: <?php function aha ($val="") { return ((mb_strlen($val)) > 4); } $ss="3231223"; $res = aha($ss); //Присвоение переменной результата функции var_dump($my_res); if ($res === true){ echo "1"; } else{ echo "0"; } Обрати внимание, функция теперь вообще не возвращает "переменную". Она возвращает сразу результат выражения. Это сделано просто для подтверждения тезиса о том, что никакого "экспорта" или создания переменной в ходе ее работы не предусмотрено. Ее можно было оставить и такой, какая была у тебя. С присвоением внутренней переменной и с возвратом уже ее значения. Так делать даже правильнее с точки зрения поддержки кода в будущем. Но в любом случае, будь добр сам внешнюю переменную создай, и сам в нее результат работы функции положи. Ну а дальше все как по маслу.
а в чем разница? function aha ($val="") и function aha ($val) в учебнике вариант с ="" но для чего? пробовал и так и так работает одинаково.
Значения аргументов по умолчанию http://php.net/manual/ru/functions.arguments Читай документацию по PHP там почти всё есть.
Об этом моменте прекрасно написано в мануале. Это так называемое значение по умолчанию. То есть, если ты вызываешь aha(1) - ты явно передаешь значение аргумента. Если aha() - то не указываешь. В первом варианте - aha($v = 1) - будет подставлено значение по умолчанию. Во втором - aha($v) - выскочит ошибка.
Вот тебе наглядное пособие: PHP: <?php function foo1($text = "pewpew"){ //у функции foo1 параметр имеет значение по умолчанию echo $text,'<br>'; } function foo2($text){ //а у функции foo2 нет echo $text,'<br>'; } //Проверим обе функции, вызывая их с аргументом и без foo1("ololo"); //ololo foo1(); //pewpew foo2("ololo"); //ololo foo2(); / /WARNING+NOTICE
Код (Text): class calc { public $one; public $two; public function plus() { $resloj=$this->one+$this->two; return $resloj; # echo "asc", $resloj; } } вобщем сделал типа калькулятора складывает одно число с другим через класс. а как сделать чтоб можно было подставить любой знак - * / ? *да я предпологаю что это извращение но интерестно возможно ли это.
Можно просто разобрать математическое выражение, например с одной из библиотек php math expression parser, например https://github.com/aboyadzhiev/php-math-parser
хочу спарсить данные но не получается. часа два тыкался как медвежатник. вот два примера попыток Код (Text): $borgs=file_get_contents( "http://ru.investing.com/"); preg_match( '/<td class="lastNum pid-2186-last" id="sb_last_2186">(.*?)<\/td>/is', $borgs, $borg ); echo "<pre>"; print_r($borg); так же на других сайтах но там хотя бы ошибок нет просто пустая страница: Код (Text): $borgs=file_get_contents( "https://ru.tradingview.com/chart/USDRUB/"); preg_match( '/<span class="tv-widget-chart__price-value symbol-last" title="Последняя цена">(.*?)<\/span>/i', $borgs, $borg ); print_r($borg);
в правилах написано, что запрещено обсуждать парсинг, попадает под воровство контента, лучше посмотри если у них есть API с нужными тебе данными
@noice для общего развития - элементы могут создаваться на странице яваскриптом, в этом случае в консоли браузера они есть, но отсутствуют в начальном коде, полученном от сервера.
@denis01 понял, удалите. а то я не могу. я чисто из практики. не воровства раде) еще квештенс: как в переменную $new заталкать условие выборки /<span class="inline-stocks__value_inner">(.*?)<\/span>/i для preg_match ниже экскиз, который не робит Код (Text): $new = ('/<span class="inline-stocks__value_inner">(.*?)<\/span>/i'); preg_match($new, $borgs, $borg );
в форме есть: PHP: <button type="submit" name="submit">ok</button> <select type="submit" name="select" size = “200” multiple\> <-как заставить отправить форму без нажатия на кнопку(что строкой выше тут). То есть чтобы кликнув по пункту из списка name="select" форма отправлялась сразу.
на javascript для select тега нужно повесить вызов кода на событие onchange, вызывать можно submit функцию для формы.