Articles of синтаксис

Как получить доступ к объекту, когда имя свойства содержит – (дефис)

Мне нужна escape-последовательность для – или знак минус для php. У объекта есть пара имен и значений, где имя имеет значение – между двумя словами. Я не могу этого сделать, используя стандартную escape-последовательность ( – не документируется). Я могу сохранить имя в $myvariable которое можно использовать, но из любопытства можно сделать следующее? $myobject->myweird-name Это дает […]

Переменные переменные в PHP – Какова их цель?

В PHP есть функциональность, официально называемая « Переменные переменные », где можно назначить переменные переменные. Переменная-переменная принимает значение одной переменной в качестве имени для новой переменной! Например: $name='Joe'; $$name='Smith'; // could also be written as ${$name}='Smith' Первая переменная $ name содержит значение «Joe», а вторая – переменная с именем $ Joe со значением «Smith». Учтите, […]

Ссылка на статический метод в PHP?

В PHP я могу использовать нормальную функцию как переменную без проблем, но я не понял, как использовать статический метод. Я просто пропустил правильный синтаксис, или это невозможно? (EDIT: первый предложенный ответ, похоже, не работает. Я расширил свой пример, чтобы показать возвращенные ошибки.) function foo1($a,$b) { return $a/$b; } class Bar { static function foo2($a,$b) { […]

Ошибка синтаксиса PHP … неожиданный T_VARIABLE?

Полная ошибка: Ошибка анализа: ошибка синтаксиса, неожиданный T_VARIABLE в /home/u572186424/public_html/safe.php в строке 56 Я смотрел на линию 56 и не могу понять это … exit(); Весь файл выглядит следующим образом: <?php include_once("connect.php"); ?> <? $sql = "SELECT * FROM users WHERE id='".mysql_real_escape_string($_SESSION['user_id'])."'"; $query = mysql_query($sql) or die(mysql_error()); $row = mysql_fetch_object($query); $id = htmlspecialchars($row->id); $userip = […]

Что это за синтаксис PHP?

Недавно я увидел несколько примеров кода PHP, которые выглядели следующим образом: $myObj->propertyOne = 'Foo' ->propertyTwo = 'Bar' ->MethodA('blah'); В отличие от: $myObj->propertyOne = 'Foo'; $myObj->propertyTwo = 'Bar'; $myObj->MethodA('blah'); Это из определенной структуры или конкретной версии PHP, потому что я никогда не видел, чтобы она работала?

Сводный синтаксис PHP

Я только что наткнулся на это на GitHub. ($config === NULL) and $config = Kohana::config('email'); Это эквивалент if ($config === NULL) { $config = Kohana::config('email'); } Это обычное явление? Буду ли я ожидать, что другие разработчики рассмотрят мой код, если я воспользуюсь этим первым способом, чтобы сразу узнать, что он делает?

Ошибка анализа: синтаксическая ошибка, неожиданный T_ECHO

Я работал над чем-то в течение последних нескольких дней, но этот один бит кода постоянно вызывает неожиданный T_ECHO. Мои друзья не могут найти ничего плохого в этом, и я нахожусь на грани моего терпения. Даже при удалении вложенного цикла while он все равно выдает ошибку, и я переключился на while: endwhile; синтаксис, и я все […]

Нужны ли нам ключи массива PHP, чтобы они были заключены в кавычки?

Какой из них ниже? У первого кода нет кавычек в массиве $ _GET, а во втором – я знаю, что вы должны иметь их, когда это строка текста, но в этом случае это переменная, а также о том, является ли ключ числом? нет котировок function arg_p($name, $default = null) { return (isset($_GET[$name])) ? $_GET[$name] : […]

Синтаксис PHP. Булевы операторы, тернарный оператор и JavaScript

В JavaScript у меня есть привычка использовать следующую резервную оценку var width = parseInt(e.style.width) || e.offsetWidth() || 480 значение width получит последнее ненулевое значение (не null …). Однако в php я не могу писать $a = $_GET['id'] || 1; Я должен написать так $a = $_GET['id']?$_GET['id']:1; Что плохо, потому что $_GET['id'] оценивается дважды Какие-либо предложения?

PHP Альтернативные структуры управления, любые недостатки?

Я работал с PHP кодом, который генерирует HTML без каких-либо шаблонов, и это довольно спагетти и трудно читать с тем, как они структурировали его. Одним из способов радикального улучшения после потока, который я заметил, является использование : endif вместо { } блоков в некоторых случаях для повышения удобочитаемости. (См. Http://php.net/manual/en/control-structures.alternative-syntax.php ) Является ли это переносной? […]