Podczas korzystania z error_reporting()
lub ini_set('error_reporting')
w moich skryptach, czy są jakieś różnice w funkcjonalności między nimi? Czy jedna metoda jest lepsza od drugiej?Różnica między error_reporting() a ini_set ('error_reporting')?
Dla tego, co jest warte, widzę wiele frameworków przy użyciu error_reporting()
, ale obie opcje wydają się być ustawione tylko podczas wykonywania, a następnie przywracane do wartości domyślnych w php.ini po wykonaniu skryptu.
Niezupełnie; ini_set zwraca wartość false, gdy ustawienie nie istnieje. Oczekuje łańcucha, więc wszystko, co można zinterpretować jako ciąg, zostanie przekonwertowane. Jeśli przekażesz obiekt, na przykład, PHP wygeneruje ostrzeżenie i zwróci wartość null, która jest identyczna z zachowaniem error_reporting, gdy przekazano obiekt (obiekt bez metody __toString(), to jest). Rzecz w tym, że jego pytaniem była różnica między 'ini_set ('error_reporting')' i 'error_reporting()', a nie sposób, w jaki 'ini_set()' obsługuje błędy w nazwach dyrektyw. – Dereleased
Powinienem wyjaśnić, kiedy mówię "oczekuje struny" mam na myśli drugi parametr, wartość ustawionego ustawienia i wszystko inne odnosi się do tego. – Dereleased
@ Wyobraźni, myślę, że zwracanie false ini_set opiera się na możliwości blokowania zmiany niektórych ustawień w środowisku wykonawczym w 'php.ini'.Zakładam więc, że jeśli zmiana poziomu błędu w środowisku uruchomieniowym zostanie wyłączona w php.ini (Nie jestem pewien, czy to możliwe, ale myślę, że tak) ini_set() zwróci wartość 'false', a' error_reporting' will, przynajmniej zgodnie z instrukcją , zawsze zwracaj stary poziom błędu. –