if ($field_professionnel_panier === false) {}
или, если это в вашем магазине объекта:
if ($store->field_professionnel_panier === false) {}
Чтобы ответить на ваш комментарий:
== проверьте, если значения двух переменных вы сравниваете равные
=== проверяет, равны ли они и имеют ли они одинаковый тип (т. е. логическое значение)
Я предложил бы использовать (Unix util) xxd для этого. можно использовать его как так
$ echo hello world > a
$ xxd -i a
выводы:
unsigned char a[] = {
0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x0a
};
unsigned int a_len = 12;
Даже если бы это может быть сделано во время компиляции (я не думаю, что это может в целом), текст, вероятно, был бы предварительно обработанным заголовком, а не содержанием файлов дословно. Я ожидаю, что необходимо будет загрузить текст из файла во времени выполнения или сделать противное cut-n-paste задание.
в x.h
"this is a "
"buncha text"
в main.c
#include <stdio.h>
int main(void)
{
char *textFileContents =
#include "x.h"
;
printf("%s\n", textFileContents);
return 0
}
должен сделать задание.
То, что могло бы работать, - то, если Вы делаете что-то как:
int main()
{
const char* text = "
#include "file.txt"
";
printf("%s", text);
return 0;
}
Конечно, необходимо будет быть осторожными с тем, что находится на самом деле в файле, удостоверяясь, что нет никаких двойных кавычек, что всех соответствующих символов оставляют и т.д.
Поэтому могло бы быть легче, если Вы просто загружаете текст из файла во времени выполнения или встраиваете текст непосредственно в код.
Если бы Вы все еще хотели текст в другом файле, то у Вас мог бы быть он там, но он должен был бы быть представлен там как строка. Вы использовали бы код как выше, но без двойных кавычек в нем. Например:
file.txt
"Something evil\n"\
"this way comes!"
main.cpp
int main()
{
const char* text =
#include "file.txt"
;
printf("%s", text);
return 0;
}
Таким образом, в основном наличие C или C++ разрабатывает строку в текстовом файле, который Вы включаете. Это сделало бы код более опрятным, потому что нет этой огромной партии текста в начале файла.
хорошо, вдохновленный сообщением Daemin я протестировал следующий простой пример:
a.data:
"this is test\n file\n"
test.c:
int main(void)
{
char *test =
#include "a.data"
;
return 0;
}
gcc-E test.c вывод:
# 1 "test.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "test.c"
int main(void)
{
char *test =
# 1 "a.data" 1
"this is test\n file\n"
# 6 "test.c" 2
;
return 0;
}
Таким образом, это работает, но потребуйте данных, окруженных кавычками.
У Вас есть две возможности:
\
), Escape "
символы и другие, чтобы заставить это работать. Легче просто записать немного программы для преобразования байтов в последовательность как '\xFF', '\xAB', ...., '\0'
(или используйте инструмент Unix xxd
описанный другим ответом, если Вы имеете его в наличии!):Код:
#include <stdio.h>
int main() {
int c;
while((c = fgetc(stdin)) != EOF) {
printf("'\\x%X',", (unsigned)c);
}
printf("'\\0'"); // put terminating zero
}
(не протестированный). Затем сделайте:
char my_file[] = {
#include "data.h"
};
Где data.h сгенерирован
cat file.bin | ./bin2c > data.h