ขึ้นอยู่กับว่าคุณผจญภัยมากแค่ไหน หากคุณเข้าใจข้อผิดพลาดนั่นหมายความว่า PHP ของคุณมีตัวสร้างคลาสเก่าบางตัว
ตัวสร้างคลาส Php เก่า
Class myclassname {
function myclassname() {
//This is a constructor
}
ตัวสร้างคลาส Php ใหม่
Class myclassname {
function __construct() {
//this is the new constructor using __construct instead of the same function name as class name.
}
ดังนั้นสิ่งที่ฉันไม่ได้ที่จะไปลง/usr/share/php/php-gettext/stream.php
และ/usr/share/php/php-gettext/gettext.php
(หรือไฟล์สิ่งที่ระบุไว้ในข้อผิดพลาดของคุณ) ให้ไปที่ไฟล์และการเปลี่ยนแปลงไปfunction myclassname()
function __construct
ฟังก์ชั่นmyclassname
ควรจะเหมือนกับmyclassname
ประกาศCLASS
คุณจะเห็นข้อผิดพลาดประมาณ 4 ข้อถ้าคุณใช้ Ubuntu 16.04 พร้อมกับ gettext ล่าสุด ฉันแค่เปลี่ยนสิ่งนั้นและมันไม่เป็นอันตรายต่อระบบของคุณ มันเป็นไวยากรณ์การเขียนโปรแกรมที่ล้าสมัยและหากคุณอัพเกรดในอนาคตคุณจะไม่ประสบปัญหาใด ๆ ฉันจะบอกว่าเป็นการแก้ไขที่ปลอดภัย
มันไม่ได้เป็นการเปลี่ยนแปลงครั้งใหญ่หรืออะไรเลยเพียงแค่ปรับปรุงไวยากรณ์ ถ้าคุณติดตั้งจาก apt-get package คุณไม่มีทางเลือกอื่นนอกจากคุณจะคอมไพล์ตัวเอง
sudo nano /usr/share/php/php-gettext/streams.php
ข้อผิดพลาด StringReader บรรทัดที่ 48
ไปที่ Line 52 และเปลี่ยน
function StringReader ($str='') {
ถึง
function __construct($str='') {
บรรทัดที่ 84 ข้อผิดพลาดของ FileReader
ไปที่ Line 90 และเปลี่ยน
function FileReader($filename) {
ถึง
function __construct($filename) {
ข้อผิดพลาด 145 ของบรรทัด CacheFileReader
ไปที่บรรทัด 146 และเปลี่ยน
function CachedFileReader($filename) {
ถึง
function __construct($filename) {
sudo nano /usr/share/php/php-gettext/gettext.php
การใช้
gettext_reader {
ข้อผิดพลาดของบรรทัดที่ 36
ฉันคิดว่าคุณได้รับส่วนสำคัญตอนนี้ไปที่บรรทัดที่ 101 และเปลี่ยน
function gettext_reader($Reader, $enable_cache = true) {
ถึง
function __construct($Reader, $enable_cache = true) {
mcrypt
และmbstring
โมดูล PHP และเริ่มต้น apache คุณทำเช่นนั้น?