Как включить встроенные изображения при отправке с помощью Mailgun API и PHP cURL

!! аналогичен использованию булевого конструктора или, вероятно, больше похож на булевскую функцию .

console.log(Boolean(null)); // Preffered over the Boolean object

console.log(new Boolean(null).valueOf()); // Not recommended for coverting non-boolean values

console.log(!!null); // A hacky way to omit calling the Boolean function, but essentially does the same thing. 


// The context you saw earlier (your example)
var vertical;

function Example(vertical)
{
        this.vertical = vertical !== undefined ? !!vertical : 
        this.vertical; 
        // Let's break it down: If vertical is strictly not undefined, return the boolean value of vertical and set it to this.vertical. If not, don't set a value for this.vertical (just ignore it and set it back to what it was before; in this case, nothing).   

        return this.vertical;
}

console.log( "\n---------------------" )

// vertical is currently undefined

console.log(new Example(vertical).vertical); // The falsey or truthy value of this.vertical
console.log(!!new Example(vertical).vertical); // Coerced value of this.vertical

vertical = 12.5; // set vertical to 12.5, a truthy value.
console.log(new Example(vertical).vertical); // The falsey or truthy value of this.vertical which happens to be true anyway
console.log(!!new Example(vertical).vertical); // Coerced value of this.vertical

vertical = -0; // set vertical to -0, a falsey value.
console.log(new Example(vertical).vertical); // The falsey or truthy value of this.vertical which happens to be false either way
console.log(!!new Example(vertical).vertical); // Coerced value of this.vertical

Значения Falsey в javascript-принуждении к false и правным значениям принуждают к true. Ложные и правдивые значения также могут использоваться в if утверждениях и будут по существу «отображать» их соответствующее булево значение. Тем не менее, вы, вероятно, не обнаружите, что вам нужно часто использовать правильные логические значения, так как они в основном отличаются выходом (возвращаемые значения).

Хотя это может показаться похожим на кастинг, реалистично это, скорее всего, простое совпадение и не «построено» или специально создано для и подобно булевскому литу. Поэтому не будем называть это.


Почему и как это работает

Чтобы быть кратким, это выглядит примерно так: ! ( !null ). В то время как null является ложным, поэтому !null будет истинным. Тогда !true будет ложным, и по существу инвертирует назад на то, что было до этого, за исключением этого времени как правильное булевское значение (или даже наоборот с правными значениями , такими как {} или 1).

Возвращаясь к вашему примеру

В целом контекст, который вы видели, просто настраивает this.vertical в зависимости от того, определено или нет vertical, и если так; он будет установлен на результирующее логическое значение вертикали, иначе оно не изменится. Другими словами, если vertical определен; this.vertical будет установлен на логическое значение, иначе он останется неизменным. Я думаю, это само по себе является примером того, как вы будете использовать !! и что он делает.

Пример вертикального ввода-вывода

Запустите это пример и возиться с вертикальным значением на входе. Посмотрите, к чему приводит результат, чтобы вы могли полностью понять код вашего контекста. На вкладке введите любое допустимое значение javascript. Не забудьте включить цитаты, если вы тестируете строку. Не обращайте внимания на CSS и HTML-код слишком просто, просто запустите этот фрагмент и поиграйте с ним. Тем не менее, вы можете взглянуть на javascript-код, не связанный с DOM (использование конструктора Example и вертикальной переменной).

var vertical = document.getElementById("vertical");
var p = document.getElementById("result");

function Example(vertical)
{
        this.vertical = vertical !== undefined ? !!vertical : 
        this.vertical;   

        return this.vertical;
}

document.getElementById("run").onclick = function()
{

  p.innerHTML = !!( new Example(eval(vertical.value)).vertical );
  
}
input
{
  text-align: center;
  width: 5em;
} 

button 
{
  margin: 15.5px;
  width: 14em;
  height: 3.4em;
  color: blue;
}

var 
{
  color: purple;
}

p {
  margin: 15px;
}

span.comment {
  color: brown;
}

Vertical Example

var vertical = ; // enter any valid javascript value

...

0
задан anomis66 22 February 2019 в 19:59
поделиться

1 ответ

Я собрал билет в службу поддержки Mailgun, и Марко ответил решением, которым я поделился:

$inline = curl_file_create(realpath('../includes/images/logo_sml.png'));
...
'inline'    => $inline,

curl_file_create - Создает объект файла CURL для прикрепления изображения. , Остальная часть кода не изменилась.

0
ответ дан anomis66 22 February 2019 в 19:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: