Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
87 / 86 / 27
Регистрация: 04.10.2012
Сообщений: 350
1

Запутался в приоритетах операторов

17.09.2015, 16:01. Показов 369. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую!
Простой код:
PHP
1
2
3
4
5
6
7
8
function response($url, $json) {
  $cUrl = curl_init($url);
  curl_setopt($cUrl, CURLOPT_RETURNTRANSFER, true);
  $result = curl_exec($cUrl);
  curl_close($cUrl);
  if ($result && (!$json || ($result = json_decode($result)))) return $result;
  die();
}
Вопрос по шестой строке. return $result должно происходить в любом из двух случаев:
1) curl_exec() завершилась успехом и $json == false.
2) curl_exec() завершилась успехом, $json == true и json_decode() завершилась успехом.

Но в каком порядке на самом деле будет разбираться содержимое if (...)?
Ведь из-за скобок $result=json_decode($result) имеет больший приоритет и должно обрабатываться первым. Так или нет?

PS: Можно, конечно, написать:
PHP
1
2
3
if (!$result)
  if (!$json) return $result;
  else if ($result = json_decode($result)) return $result;
И не заморачиваться.
Но вопрос не в конкретной реализации, а в принципе разбора if (...).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2015, 16:01
Ответы с готовыми решениями:

Вопрос о приоритетах
добрый вечер. Растолкуйте плиз почему в программе: class t { public: int sum; float f(int a) ...

Не работает часть стиля. Ошибка в приоритетах
<!--<?php session_start(); ?>--> <!--<!DOCTYPE html>--> <html> <head> <meta...

NVIC - порядок выполнения при равных приоритетах?
Где можно посмотреть? Ну, например, все приоритеты одинаковы, сработало EXTI прерывание и...

BIOS перестал видеть жесткий диск в приоритетах загрузки
У меня стоит SSD с установленной windows 7 и второй - HDD. Раньше в биосе все было нормально, в...

1
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
17.09.2015, 16:08 2
PHP
1
2
3
4
5
6
7
8
9
10
11
#Строка будет рассмторена
if ($result && (!$json || ($result = json_decode($result))))
#так
if ($result &&)
#1.если false все выражение фалс
#2.Если тру смотрится второй агумент
(!$json ||)
#2.1 Если $json  фалсе, все выражение тру
#2.2 Если $json тру, смотрится далее скоба
$result = json_decode($result)
#2.2.1 Она определяет весь иф
1
17.09.2015, 16:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.09.2015, 16:08
Помогаю со студенческими работами здесь

Задача с использованием логических операторов и операторов ветвления
Вот вам задачка, чтоб голову поломать :D Вася работает программистом и получает 50$ за каждые...

Требуется разработать две программы (или одну с двумя циклами) с использованием операторов повтора (циклических операторов) WHILE и REPEAT
расчитать \sum_{\propto }^{n=1}{-1}^{n}\frac{1}{n(2n+1)} c точностью \alpha 0,001 Нужно...

Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this
Добрый день . Помогите понять принцип работы перегрузки операторов. объясните пожалуйста в...

запутался
Дали задание написать программу. вот формула c*(b-a)+ (f/2)*(b^2-a^2)-(g/3)*(b^3-a^3). По нажатии...

Запутался!
Мужики, умные люди помогите пожалуйста начинающему, я запутался, прочитал кучу инфы, проюзал гугл,...

Я запутался:)
Здравствуйте, помогите разобраться почему не работает условие, программа не компилируется...:( ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru