require выдает ошибку, а не бросает исключение, поэтому обрабатывать ее нужно с помощью функций set_error_handler и register_shutdown_functionfunction myErrorHandler($errno, $errstr, $errfile, $errline)
{
	print "<pre>"; print_r($errstr); print "</pre>";
}
function myShutdownHandler()
{
	print "<pre>"; print_r(error_get_last()); print "</pre>";
}
set_error_handler('myErrorHandler');
register_shutdown_function('myShutdownHandler');
//Require-скриптыfile_exists()) и после этого уже подключать его.      make_upload вы изменяете локальную версию переменной $ava, т.е. ту, которая доступна только в пределах функции make_upload. global в функции make_upload, чтобы изменить значение глобальной переменной  $ava:function make_upload($file){
    global $ava;
    $ava = $href;
    // ...
}array_column много одинаковых значений, но с разными ключами. array_flip для таких значений возвращает последний найденный ключ (например, 12856 вместо 32 в вашем случае).
Если значение встречается несколько раз, для обработки будет использоваться последний встреченный ключ, а все остальные будут потеряны.
$_POST действительно передаются id и carname:print("<pre>");print_r($_POST);print("</pre>");$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$sql = 'UPDATE `cars` SET `name` = :carname WHERE `id` = :id';
$s = $db->prepare($sql);
$s->bindValue(':id', $_POST['id']);
$s->bindValue(':carname', $_POST['carname']);
$s->execute();
print("<pre>");print_r($s->errorInfo());print("</pre>");<div>
  <?php foreach($images as $img): ?>
        <img src="images/<?=$img?>" alt="" width="200">
    <?php endforeach; ?>
</div><?php вместо <?. Чтобы использовать второй вариант (как в вашем примере) в php.ini параметр short_open_tag должен быть равен On      PREG_PATTERN_ORDER
Упорядочивает результаты так, что элемент $matches[0] содержит массив полных вхождений шаблона, элемент $matches[1] содержит массив вхождений первой подмаски и т.д.
$arr = [
	['id' => 1, 'sub_id' => null, 'name'=> 'name1'],
	['id' => 2, 'sub_id' => 1,    'name'=> 'name2'],
	['id' => 3, 'sub_id' => 1,    'name'=> 'name3'],
	['id' => 4, 'sub_id' => null, 'name'=> 'name4'],
	['id' => 5, 'sub_id' => 2,    'name'=> 'name5'],
	['id' => 6, 'sub_id' => 4,    'name'=> 'name6'],
];
/* https://stackoverflow.com/a/28429487  */
function buildTree(array &$elements, $parentId = 0) {
    $branch = array();
    foreach ($elements as &$element) {
        if ($element['sub_id'] == $parentId) {
            $children = buildTree($elements, $element['id']);
            if ($children) {
                $element['children'] = $children;
            }
            $branch[$element['id']] = $element;
            unset($element);
        }
    }
    return $branch;
}
function printTree(array $arr, $level=1) {
	foreach ($arr as $k => $v) {
		print(str_repeat('-', $level) . $v['name'] ."\n");
		if(isset($v['children']) && is_array($v['children'])) {
			printTree($v['children'], $level + 1);
		}
	}
}
printTree(buildTree($arr));$arr = [
	["small"=> "/images/0001_GOLD.jpg"],
  	["small"=> "/images/003_lux.jpg"],
  	["small"=> "/images/002_prod_3.jpg"],
  	["small"=> "/images/0002_GOLD.jpg"],
  	["small"=> "/images/002_prod_5.jpg"],
  	["small"=> "/images/002_lux.jpg"],
  	["small"=> "/images/002_prod_4.jpg"],
];
$lux = [];
$prod = [];
$gold = [];
foreach ($arr as $v) {
	if(strpos($v['small'], 'lux') !== false) {
		$lux[] = $v;
	}
	if(strpos($v['small'], 'prod_') !== false) {
		$prod[] = $v;
	}
	if(strpos($v['small'], 'GOLD') !== false) {
		$gold[] = $v;
	}
}
print_r(array_merge($lux, $prod, $gold));.htaccess. Часто для него дополнительно ограничивают права. @param используется для документирования аргумента функции или метода. В основном для улучшения автокомплита в ide.$file_url, поэтому в ней указан относительный путь.$_SERVER['HTTP_HOST']class Entity
{
	public function add(ComplexEntityValidator $validator) {
		$validator->validate();
	}
}
class ComplexEntityValidator
{
	public function __construct(EntityRepository $repository) {
	}
	public function validate() {
		// проверка
	}
}
class EntityApplicationService
{
	public function __construct(ComplexEntityValidator $validator) {
	}
	public function __invoke() {
		$entity = new Entity();
		$entity->add($validator);
		// сохранение сущности
	}
}
Расстояние Левенштейна - это минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2. Сложность алгоритма равна O(m*n), где n и m - длины строк str1 и str2 (неплохо по сравнению с similar_text(), имеющей сложность O(max(n,m)**3), но все же довольно много).
echo(levenshtein('abcdefg', 'amcdehg'));$lines = [
  'Продам клинок демона +6 / Солнцеликий плащ +2 тьма',
  'Продам клинок демона +6, Солнцеликий плащщ +2тьма',
  'Акция! Продам клинок демона +6, Солнцеликий плащ +2тьма',
  'Продам клинок ангела +3, Луноликая куртка +4свет',
  'Продам клинок ангелла +3, Луноликая куртка +4свет',
  'Акция ! Продам клинок ангела +3, Луноликая куртка +4свет',
  'тест акции',
  'проверка демона',
  'проверка ангела',
];
$res = [];
$allSimilar = [];
foreach ($lines as $line) {
    $similarLines = [];
    if(in_array($line, $allSimilar)) {
        continue;
    }
    foreach ($lines as $line1) {
        $lev = mb_levenshtein($line, $line1);
        $maxDistance = (int)(0.2 * max(mb_strlen($line), mb_strlen($line1)));
        if($lev <= $maxDistance) {
            $similarLines[] = $line1;
            $allSimilar[] = $line1;
        }
    }
    $res[$line] = $similarLines;
}
print_r($res);trait ErrorTrait
{
	public function someMethod($someArg) {
		echo __TRAIT__ . ": " . $someArg . "\n";
	}
}
trait OtherFirstTrait
{
	abstract public function someMethod($someArg);
	public function someMethod1($someArg) {
		echo __TRAIT__ . ": " . $someArg . "\n";
		$this->someMethod($someArg);
	}
}
trait OtherSecondTrait
{
	abstract public function someMethod($someArg);
	public function someMethod2($someArg) {
		echo __TRAIT__ . ": " . $someArg . "\n";
		$this->someMethod($someArg);
	}
}
abstract class MainClass
{
	use ErrorTrait;
}
class ChildCLass extends MainClass
{
	use OtherFirstTrait, OtherSecondTrait;
}
$o = new ChildCLass();
$o->someMethod("test ErrorTrait");
print("\n");
$o->someMethod1("test OtherFirstTrait");
print("\n");
$o->someMethod2("test OtherSecondTrait");ErrorTrait: test ErrorTrait
OtherFirstTrait: test OtherFirstTrait
ErrorTrait: test OtherFirstTrait
OtherSecondTrait: test OtherSecondTrait
ErrorTrait: test OtherSecondTrait