php

php Как понять где именно в строке ошибка (в каком символе, когда номер строки известен)

Если в строке находится достаточно сложное выражение, то можно всегда разбить его на несколько строк, чтобы уточнить у интерпретатора что именно не так.

Пример разбиения одной строки на несколько

Рассмотрим пример:

<?php

$s = [];
$a = $s;
$s[1] = '123' . $a;

- для этого кода мы получим сообщение:

Notice: Array to string conversion in [...][...] on line 5

- написано, что происходит некорректная попытка привести массив к строковому типу в 5-ой строке программы, но на первый взгляд на строку:

php var_dump И print_r Какая разница и что есть общее между этими функциями

Просто цитируем официальный сайт PHP:

  • var_dump() -- Выводит информацию о переменной.
  • print_r() -- Выводит удобочитаемую информацию о переменной.

Так в чем же разница

Считается что формат print_r более удобный для чтения (на практике потому, что там содержится меньше информации, например, не выводится тип переменных).

php Передача значений по ссылке в функцию - плюсы и минусы, когда это стоит делать, а когда нет

Передача значений по ссылке в функцию (или метод класса) позволяет сохранить результат работы с переменной в функции для внешнего кода без возврата значения этой переменной из функции.

Изменение нескольких переменных в функции с помощью передачи по ссылке

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

php Возврат изменение нескольких значений в функции/методе, массив объект - что лучше отдавать наружу

Что лучше - одно значение или много значений

Если ваши значения никак логически друг с другом не связаны, то старайтесь для рассчета каждого параметра использовать отдельную функцию (или метод класса), подобных подход приводит к большей универсальности, т.к. рассчитывается только, что нужно, без лишних действий.
Если же логика вашей программы обязательно требует возврата "набора" значений, то читайте дальше ;)

php Точечная нотация - путь в многомерном массиве

Идея обозначения пути как строки со словами, разделенными точкой, проста. Рассмотрим пример:
Пусть у нас есть есть строка путь

'name.job.id'

, такой путь можно использовать как парамерт, который требует извлечь из массива, скажем, $arr элемент:

$arr['name'['job']['id']

php NULL как ключ массива приводится к пустой строке

Можно убедиться:

<?php

$a = [null => 5, 1 => 6];

foreach ($a as $k => $v)
{
    echo gettype($k) . ' ';
}

-- справедливо как минимум в php7.2
Поэтому если вы ищите в массиве ключ, то в принципе null можно возвращать как признак неудачи.

php Пример оформления решения задачи в виде функции

(заметка относится, как минимум, к этому списку задач)

Возьмём код из решения задачки (один из учеников), и прокомментирую его:

php Ошибка Fatal error: Cannot declare class (Решение)

Ошибка может быть связана помимо элементарнго повторного объявления класса в том же пространстве, ещё и с импортом одноименного класса из другого пространства.

Например, в случае:

use ItForFree\rusphp\Common\Ui\Breadcrumbs\Breadcrumbs;

/**
 * Хлебные крошки для модуля иерахических ссылок
 */
class Breadcrumbs {
   public function init() {
       $Bcmrs = new Breadcrumbs();
   
   }
}

надо исправить на:

Pages

Subscribe to RSS - php