Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Codeigniter在查看页面中调用自定义函数_Php_Codeigniter - Fatal编程技术网

Php 如何使用Codeigniter在查看页面中调用自定义函数

Php 如何使用Codeigniter在查看页面中调用自定义函数,php,codeigniter,Php,Codeigniter,如何使用Codeigniter在视图文件中调用自己的函数 我有一个功能: 函数hoursToSeconds($hour){/$hour必须是字符串类型:“HH:mm:ss” $parse=array() if(!preg#u match('#^(?[\d]{2}):(?[\d]{2}):(?[\d]{2})$#',$hour,$parse)){ //抛出错误、异常等 抛出新的RuntimeException(“小时格式无效”); } 返回(int)$parse['hours']*3600+(in

如何使用Codeigniter在视图文件中调用自己的函数

我有一个功能:

函数hoursToSeconds($hour){/$hour必须是字符串类型:“HH:mm:ss” $parse=array()

if(!preg#u match('#^(?[\d]{2}):(?[\d]{2}):(?[\d]{2})$#',$hour,$parse)){
//抛出错误、异常等
抛出新的RuntimeException(“小时格式无效”);
}
返回(int)$parse['hours']*3600+(int)$parse['mins']*60+(int)$parse['secs'];
}

我刚刚调用了如下函数:
$sum+=hoursToSeconds($rec['emp_late']),但它不起作用


这里可能有什么问题?

最好的方法是使用助手

CodeIgniter助手是一个具有多个函数的PHP文件

让我们在应用程序/helpers/中创建helper,比如hour\u helper.php,粘贴您的函数

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if ( ! function_exists('hoursToSeconds'))
{
   function hoursToSeconds ($hour) { // $hour must be a string type: "HH:mm:ss"
    $parse = array();

    if (!preg_match ('#^(?<hours>[\d]{2}):(?<mins>[\d]{2}):(?<secs>[\d]{2})$#',$hour,$parse)) {
         // Throw error, exception, etc
         throw new RuntimeException ("Hour Format not valid");
    }

     return (int) $parse['hours'] * 3600 + (int) $parse['mins'] * 60 + (int) $parse['secs'];
  }
}
如果您希望在多个模块/控制器/模型之间共享此帮助程序,则通过将其添加到自动加载配置文件(即
path/to/application/config/autoload.php
)来自动加载

$autoload['helper'] = array('hour_helper');

在您的情况下,在控制器中加载helper,然后在视图中调用它

最好的方法是使用helpers

CodeIgniter助手是一个具有多个函数的PHP文件

让我们在应用程序/helpers/中创建helper,比如hour\u helper.php,粘贴您的函数

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if ( ! function_exists('hoursToSeconds'))
{
   function hoursToSeconds ($hour) { // $hour must be a string type: "HH:mm:ss"
    $parse = array();

    if (!preg_match ('#^(?<hours>[\d]{2}):(?<mins>[\d]{2}):(?<secs>[\d]{2})$#',$hour,$parse)) {
         // Throw error, exception, etc
         throw new RuntimeException ("Hour Format not valid");
    }

     return (int) $parse['hours'] * 3600 + (int) $parse['mins'] * 60 + (int) $parse['secs'];
  }
}
如果您希望在多个模块/控制器/模型之间共享此帮助程序,则通过将其添加到自动加载配置文件(即
path/to/application/config/autoload.php
)来自动加载

$autoload['helper'] = array('hour_helper');

在您的情况下,在控制器中加载helper,然后在视图中调用它

检查提供给
hoursToSeconds()
的参数的格式是否正确HH:mm:ss

检查提供给
hoursToSeconds()
的参数的格式是否正确HH:mm:ss您的错误是什么?“不工作”是什么意思?请澄清“但不工作”是什么意思。添加实际的errormessage。上面的函数在哪个文件中?查看文件?哪里?你的错误是什么?“不工作”是什么意思?请澄清“但不工作”是什么意思。添加实际的errormessage。上面的函数在哪个文件中?查看文件?在哪里?没问题。foreach($rec)[//$count++;$emp_id=$rec['id'];$emp_name=$rec['emp_name'];$emp_in=$rec['emp_in'];$emp_status=$rec['emp_stat'];$emp_late=$rec['emp_late'];$sum+=hoursecods($rec['emp_late']);sum}$gm date($H.H)$休假日期=数字格式($gm/5,1)$休假总额=$缺勤总额+$休假日期$gm1=gmdate(“H.i”,sum1美元)$额外休假=数字格式($gm1/5,1);如何回音小时到秒($rec['emp_late'])。我想得到emp_late字段值的总和。例如:2.5没问题。foreach($rec的数据){/$count++;$emp_id=$rec['id'];$emp_name=$rec['emp_name'];$emp_in=$rec['emp_in'];$emp_status=$rec['emp_stat'];$emp_late=$rec['emp_late']$gm=gmdate(“H.i”,金额为$sum)$休假日期=数字格式($gm/5,1)$休假总额=$缺勤总额+$休假日期$gm1=gmdate(“H.i”,sum1美元)$额外休假=数字格式($gm1/5,1);如何回音小时到秒($rec['emp_late'])。我想得到emp_late字段值的总和。例如:2.5是正确的。但我希望将数据库字段值输入hoursToSeconds()。我尝试回显hoursToSeconds('20:10:30;);它的工作..但是表字段值不能进入hoursToSeconds('');我的表字段(emp_late)值00:01:00,10:01:02,01:20:30,10:22:30。如何在该值中执行和返回sum hoursToSeconds()。
得到了正确答案21:45:02和您的值,不知道为什么数据库值不能正常工作它是正确的。但我希望将数据库字段值输入hoursToSeconds()。我尝试回显hoursToSeconds('20:10:30;);它的工作..但是表字段值不能进入hoursToSeconds('');我的表字段(emp_late)值00:01:00,10:01:02,01:20:30,10:22:30。如何在该值中执行和返回sum hoursToSeconds()。
得到了正确答案21:45:02和您的值,不知道为什么数据库值不能正常工作