Αλλαγή παραμέτρων συνάρτησης στην PHP

Η αλλαγή μεταβλητών που μεταβιβάστηκαν ως παράμετροι σε μια συνάρτηση, δεν θα οδηγήσει σε αλλαγή αυτών των μεταβλητών έξω:

php<?php
  function func($bbb)
  {
    $bbb = 2;
  }
  
  $aaa = 1;
  func($aaa);
  echo $aaa; // 1
?>

Αυτό φυσικά λειτουργεί, ακόμα και αν η εξωτερική και η εσωτερική μεταβλητή έχουν το ίδιο όνομα:

php<?php
  function func($num)
  {
    $num = 2;
  }
  
  $num = 1;
  func($num);
  echo $num; // 1
?>
Задание 1

Πείτε, ποιο θα είναι το αποτέλεσμα της εκτέλεσης του κώδικα:

php<?php
  $aaa = 'a';
  
  function func($bbb)
  {
    $bbb = 'b';
  }
  
  func($aaa);
  echo $aaa;
?>
Задание 2

Πείτε, ποιο θα είναι το αποτέλεσμα της εκτέλεσης του κώδικα:

php<?php
  $aaa = 'a';
  
  function func($bbb)
  {
    $bbb = 'b';
  }
  
  func($aaa);
  echo $bbb;
?>
Задание 3

Πείτε, ποιο θα είναι το αποτέλεσμα της εκτέλεσης του κώδικα:

php<?php
  $str = 'a';
  
  function func($str)
  {
    $str = 'b';
  }
  
  func($str);
  echo $str;
?>
Задание 4

Πείτε, ποιο θα είναι το αποτέλεσμα της εκτέλεσης του κώδικα:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  function func($arr)
  {
    $arr[0] = '!';
  }
  
  func($arr);
  var_dump($arr);
?>