Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Как провернуть такое на PHP? (https://javascript.ru/forum/offtopic/46388-kak-provernut-takoe-na-php.html)

Maxmaxmaximus20 08.04.2014 12:55

Как провернуть такое на PHP?
 
$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

Цитата:

Сообщение от Octane
$_REQUEST['method'] ?: 'ololo'

Работает, только вот Dreamweaver ругается.

kobezzza 08.04.2014 17:23

Цитата:

Сообщение от Ruslan_xDD (Сообщение 306764)
Работает, только вот Dreamweaver ругается.

Адоб очень тормознуто добавляет поддержку новых фишек в Дрим, увы, юзай PHPStorm:)

Gozar 08.04.2014 20:04

Цитата:

Сообщение от Maxmaxmaximus20
$_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
чистить данные то это дело второстепенное

Отказываюсь понимать!

Maxmaxmaximus20 08.04.2014 22:11

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

var value = one || two;


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

Gozar 08.04.2014 22:19

Цитата:

Сообщение от Maxmaxmaximus20
не?

Не!

Цитата:

Сообщение от Maxmaxmaximus20
куда важнее понять какой в php аналог выражения

Насрать.

Цитата:

Сообщение от Maxmaxmaximus20
о том как данные фильтровать, это дело

Самого высокого приоритета!!!

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

Цитата:

Сообщение от Maxmaxmaximus20
я считаю куда важнее понять какой в php аналог выражения

js головного мозга. Пиши так, как принято в языке.

Цитата:

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

я не буду плакать :)

Maxmaxmaximus20 09.04.2014 02:22

Цитата:

Сообщение от Gozar
Насрать

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

Цитата:

Сообщение от Gozar
Самого высокого приоритета!!!

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

Цитата:

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

ахахахахахахаа php поля


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

Maxmaxmaximus20 09.04.2014 02:25

Цитата:

Сообщение от nerv_
Пиши так, как принято в языке.

у тебя фимоз головного мозгасука!! это я и пытаюсь выяснить :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

Цитата:

Сообщение от Maxmaxmaximus20
Но ведь именно в этом суть темы

Цитата:

Сообщение от Maxmaxmaximus20
но в этой теме оно имеет низкий приоритет

Оно имеет высший приоритет всегда и везде. Запомни это иначе тебе не стоит работать с сервером, особенно платно. Тебе был предложен вариант как это делать по человечески исходя из твоих замечаний выше:
Цитата:

Сообщение от Maxmaxmaximus20
Как провернуть такое на PHP?

Цитата:

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

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

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

Maxmaxmaximus20 09.04.2014 12:30

Цитата:

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

мой вопрос связан с конструкцией

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


о том как данные фильтровать совершенно не важный вопрос в данной теме
Цитата:

Сообщение от Gozar
Оно имеет высший приоритет всегда и везде.

ну вот в этой теме оно имеет низкий приоритет.

Цитата:

Сообщение от Gozar
Запомни это иначе тебе не стоит работать с сервером, особенно платно

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

Цитата:

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

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

Maxmaxmaximus20 09.04.2014 12:33

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

Gozar 09.04.2014 12:47

Цитата:

Сообщение от Maxmaxmaximus20
$method = isset($_REQUEST['method']) ? $_REQUEST['method'] : 'ololo';

Цитата:

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

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

Цитата:

Сообщение от Maxmaxmaximus20
мой вопрос связан

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

Gozar 09.04.2014 12:50

Цитата:

Сообщение от Maxmaxmaximus20
почему мне не работать платно на серверах?

Потому что это:
Цитата:

Сообщение от Maxmaxmaximus20
$_REQUEST

путь мудака, а не хокаге.

Maxmaxmaximus20 09.04.2014 14:43

Цитата:

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

да бля ты заебал, я тебе прислал как я ВООБЩЕ делаю, у меня тело запросы это 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

Цитата:

Сообщение от Maxmaxmaximus20
интересно что php

разработка никем не контролируется, т.к. ведущий разработчик забивает на все болт. Поэтому:
Цитата:

Сообщение от Maxmaxmaximus20
@

Цитата:

Сообщение от Gozar
путь мудака

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

Gozar 09.04.2014 15:44

собака "карманный друг" человека

Maxmaxmaximus21 11.04.2014 18:22

Цитата:

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

От того что мой путь это усить все функции php от этого я стал php говнокодером? у тебя с логикой снова проблемы какие-то или что?


Часовой пояс GMT +3, время: 12:51.