Как сделать функцию глобальной в приложении Codeigniter

#php #codeigniter #codeigniter-3

#php #codeigniter #codeigniter-3

Вопрос:

Я пытаюсь сделать функцию глобальной в приложении CodeIgniter. Я создал PHP-файл Constant.php в application/libraries .

Constant.php

 <?php 

 defined('BASEPATH') OR exit('No direct script access allowed');

 class Constant
 {

public function custom_number_format($n, $precision = 1) {
if ($n < 900) {
    // 0 - 900
    $n_format = number_format($n, $precision);
    $suffix = '';
} else if ($n < 900000) {
    // 0.9k-850k
    $n_format = number_format($n / 1000, $precision);
    $suffix = 'K';
} else if ($n < 900000000) {
    // 0.9m-850m
    $n_format = number_format($n / 1000000, $precision);
    $suffix = 'M';
} else if ($n < 900000000000) {
    // 0.9b-850b
    $n_format = number_format($n / 1000000000, $precision);
    $suffix = 'B';
} else {
    // 0.9t 
    $n_format = number_format($n / 1000000000000, $precision);
    $suffix = 'T';
}
 // Remove unecessary zeroes after decimal. "1.0" -> "1"; "1.00" -> "1"
 // Intentionally does not affect partials, eg "1.50" -> "1.50"
if ( $precision > 0 ) {
    $dotzero = '.' . str_repeat( '0', $precision );
    $n_format = str_replace( $dotzero, '', $n_format );
}
return $n_format . $suffix;
 }

 }
 

Я объявил эту библиотеку в config/autoload.php чем-то вроде

 $autoload['libraries'] = array('constant');
 

и теперь я пытаюсь получить доступ к этой библиотеке что-то вроде

 $totalview=$this->Constant->custom_number_format($views);
 

Но я получаю следующую ошибку
введите описание изображения здесь

Комментарии:

1. Вы пробовали вручную загружать ее из своего файла, например $this->load->library('constant'); ?

2. попробуйте с помощником, поэтому не нужно всегда добавлять имя класса перед вызовом любой функции в MVC, помощник будет проще, чем библиотека

Ответ №1:

Я не совсем уверен, но я думаю, что вы должны вызывать как объявлено.

Если вы объявили ее как:

 $autoload['libraries'] = array('constant');
 

Вы должны вызвать ее как:

 $totalview=$this->constant->custom_number_format($views);
 

(со строчными буквами).