Вход

Просмотр полной версии : Как провернуть такое на PHP?


Maxmaxmaximus20
08.04.2014, 12:55
$method = $_REQUEST['method'] || 'ololo';

Maxmaxmaximus20
08.04.2014, 12:56
if (isset($_REQUEST['method'])) {
$method = $_REQUEST['method'];
} else {
$method = 'ololo';
}

$method = isset($_REQUEST['method']) ? $_REQUEST['method'] : 'ololo';

это слишком жуткие варианты

Octane
08.04.2014, 14:38
$method = @ ($_REQUEST['method'] ?: 'ololo');

Maxmaxmaximus20
08.04.2014, 16:20
?: это я так понимаю сокращенная версия тернарного оператора?
круто же)

q ?: 11
аналог
q?q:11


вопрос

q()?:11

вызовет q() 2 раза?

Maxmaxmaximus20
08.04.2014, 16:23
ан нет) не плохо)

ruslan_mart
08.04.2014, 17:13
$_REQUEST['method'] ?: 'ololo'
Работает, только вот Dreamweaver ругается.

kobezzza
08.04.2014, 17:23
Работает, только вот Dreamweaver ругается.
Адоб очень тормознуто добавляет поддержку новых фишек в Дрим, увы, юзай PHPStorm:)

Gozar
08.04.2014, 20:04
$_REQUEST
1. Очень дурная практика ...
2.
function _clear($e, $num=100) {
$e = isset($_POST[$e])?$_POST[$e]:'';
$e = trim($e);
$e = substr($e,0,$num);
$e = htmlspecialchars($e);
return $e;
}

$method = _clear('method');
$property = _clear('property');
$id = _clear('id');
...


3. Ненужную проверку можно выбросить из _clear.

Maxmaxmaximus20
08.04.2014, 21:45
да нее, чистить данные то это дело второстепенное, я про конструкцию языка спрашивал скорее.

у меня код роутера api.php примерно так выглядит

<?php

/**
* Отправляет пользователю данные и завершает скрипт
*
* @param $data * Данные которые отправляем клиенту
* @param $errorCode int Код ошибки
*/
function send($data, $errorCode = 0) {

static $api_error_messages = array(
0 => 'Нет ошибки',
1 => 'Текст ошибки номер 1',
2 => 'Текст ошибки номер 2',
3 => 'Текст ошибки номер 3',
4 => 'Текст ошибки номер 4',
5 => 'Текст ошибки номер 5'
);


echo json_encode(array(
'data' => $data,
'errorCode' => $errorCode,
'errorMessage' => $api_error_messages[ $errorCode ],
));

exit;
}


/**
* Отправляет пользователю ошибку
*
* @param $errorCode int Код ошибки
*/
function error($errorCode) {
send(null, $errorCode);
}


/** Данные запроса @global array */
$REQUEST = (array)json_decode(file_get_contents("php://input"));
/** Метод @global string */
$METHOD = $REQUEST['method'];
/** Данные метода @global array */
$DATA = $REQUEST['data'];

Gozar
08.04.2014, 21:51
чистить данные то это дело второстепенное
Отказываюсь понимать!

Maxmaxmaximus20
08.04.2014, 22:11
я считаю куда важнее понять какой в php аналог выражения:

var value = one || two;

а о том как данные фильтровать, это дело уже вторичное. не?

Gozar
08.04.2014, 22:19
не?
Не!

куда важнее понять какой в php аналог выражения
Насрать.

о том как данные фильтровать, это дело
Самого высокого приоритета!!!

Vlasenko Fedor
08.04.2014, 22:36
Maxmaxmaximus20,
это про фильтрацию данных
http://www.php.net/manual/ru/ref.filter.php
для работы с $REQUEST используй filter_var

Aetae
08.04.2014, 22:47
Maxmaxmaximus20, ты собираешься нас бросить?
Готовишься к отправке на php-поля за новой едой? :cray:

nerv_
08.04.2014, 22:48
я считаю куда важнее понять какой в php аналог выражения
js головного мозга. Пиши так, как принято в языке.

Maxmaxmaximus20, ты собираешься нас бросить?
Готовишься к отправке на php-поля за новой едой?
я не буду плакать :)

Maxmaxmaximus20
09.04.2014, 02:22
Насрать
Но ведь именно в этом суть темы, очищать данные я и так умею О_О.
Или я что-то путаю?

Самого высокого приоритета!!!
но в этой теме оно имеет низкий приоритет, ровно такой же низкий как и у выживания например или у секса.

ты собираешься нас бросить?
Готовишься к отправке на php-поля за новой едой?
ахахахахахахаа php поля


_______________________________________________
Шок брошенного родителями ребёнка воспитало аниме

Maxmaxmaximus20
09.04.2014, 02:25
Пиши так, как принято в языке.
у тебя фимоз головного мозгасука!! это я и пытаюсь выяснить :lol: .

Спрашиваю мыл как в пыхе выглядит аналог этого. А он мне "не пытайся писать на js, лучше используй аналог с пыхи" ну ты эйнштеейн.

Maxmaxmaximus20
09.04.2014, 04:26
Ребят, как сделать аналог этого в PHP?

var params = ['John', 10];
var str = 'Hi ?, you are ? age!';

var result = str.replace(/\?/img, function (q, w, e, r) {
return params.shift();
});

alert(result);

ruslan_mart
09.04.2014, 05:24
$params = array('John', 10);
$str = 'Hi ?, you are ? age!';

$result = preg_replace_callback('/\?/imu', function($q, $w, $e, $r) {
global $params;
return array_shift($params);
}, $str);

echo $result;

melky
09.04.2014, 08:33
2 страница, уже затравили мальца.. как железо в шлифе затравили)

Gozar
09.04.2014, 10:47
Но ведь именно в этом суть темы
но в этой теме оно имеет низкий приоритет
Оно имеет высший приоритет всегда и везде. Запомни это иначе тебе не стоит работать с сервером, особенно платно. Тебе был предложен вариант как это делать по человечески исходя из твоих замечаний выше:
Как провернуть такое на PHP?
это слишком жуткие варианты

Не хочешь слышать ответы, не задавай вопросы!

То, что ответы тебе не нравятся, еще не значит, что они неверные.

Maxmaxmaximus20
09.04.2014, 12:30
Не хочешь слышать ответы, не задавай вопросы!
мой вопрос связан с конструкцией

$переменная = значение or другое_значение

о том как данные фильтровать совершенно не важный вопрос в данной теме
Оно имеет высший приоритет всегда и везде.
ну вот в этой теме оно имеет низкий приоритет.

Запомни это иначе тебе не стоит работать с сервером, особенно платно
ну вот в этой теме оно имеет низший приоритет, и я не буду запоминать что имеет высший так как оно не имеет высший а имеет низший, почему мне не работать платно на серверах?

То, что ответы тебе не нравятся, еще не значит, что они неверные.
а мне не не нравятся ответы, с чего ты взял? я просто уточнил чт оможете не заморачиваться с тем чтобы обьяснять мне как данные фильтровать, я разбираюсь. я новичек именнно в конструкции "если не одно то другое".
ты просто до слов "фильтрация тут не очень важна" доебался, неболее.

Maxmaxmaximus20
09.04.2014, 12:33
Ruslan_xDD, блин) учить миллиарды функций) вот мой путь PHP хокаге. Спасибо.

Gozar
09.04.2014, 12:47
$method = isset($_REQUEST['method']) ? $_REQUEST['method'] : 'ololo';
это слишком жуткие варианты

Я тебе сказал, так не делают, потому что это ненадежно! Но можно использовать красивую функцию и будет: красиво, удобно и надежно. Можешь и дальше нести ложку в ухо, но не нужно убеждать что это нормально и так надо делать.

мой вопрос связан
Напиши свой мегапупер языг со своими блекджеком и шлюхами. Пусть у тебя будет все как ты хочешь!

Gozar
09.04.2014, 12:50
почему мне не работать платно на серверах?
Потому что это:
$_REQUEST
путь мудака, а не хокаге.

Maxmaxmaximus20
09.04.2014, 14:43
Я тебе сказал, так не делают, потому что это ненадежно! Но можно использовать красивую функцию и будет: красиво, удобно и надежно.
да бля ты заебал, я тебе прислал как я ВООБЩЕ делаю, у меня тело запросы это json обьект и я гео парсю. я просто для примера (ВИДИМО НЕУДАЧНОГО) использовал $_REQUEST массив.

Что ж ты не поймешь, оператор or в php возвращает булево значение.

как провернуть такой трюк типа

$value = $one || $two;

мне ответили

$value = $one ?: $two;

все, вопрос закрыт на этом. спасибо всем большое. Фильтрация данных и получение данных от пользователя совершенно не важны. Мне было интересно что php выдает нотис когда пытаемся получить несуществующее свойство, и как тогда сделать что-то типа



$value = $arr['one] or $two;

чтобы нотиса не было. мне ответили:

$value = @ $arr['one] ?: $two;

Gozar
09.04.2014, 15:26
интересно что php
разработка никем не контролируется, т.к. ведущий разработчик забивает на все болт. Поэтому:@
путь мудака

Поздравляю, тебя теперь ты труговнокодер php.

Gozar
09.04.2014, 15:44
собака "карманный друг" человека (http://phpclub.ru/talk/threads/%D0%9D%D0%B0%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D 0%B8%D0%B5-%D1%81%D0%BE%D0%B1%D0%B0%D0%BA%D0%B8.66437/)

Maxmaxmaximus21
11.04.2014, 18:22
Поздравляю, тебя теперь ты труговнокодер php.
От того что мой путь это усить все функции php от этого я стал php говнокодером? у тебя с логикой снова проблемы какие-то или что?