ci框架$this->load->library 引入的文件有个问题想请教
我在模型层 aaaa_model.php$this->load->library('api/ChuanglanSmsApi');在这个文件里面还引入了一个文件require_once("chuanglan_config.php");
但是好像我访问不到这个文件chuanglan_config.php 文件,里面的内容好像没有起作用
这是什么情况 require_once 的路径要搞对,搞对路径应该是可以加载的。 根据你的猜测,如果没有报错的情况下,我觉得是你的require_once("chuanglan_config.php");这一句没有运行到,你可以直接在chuanglan_config.php里面输出看是否有到文件里面去
关于在CI框架里面 include 作用域有问题请教
本帖最后由 张三的歌 于 2016-8-25 11:07 编辑请教个问题:
b.php 里面 include c.php 文件
我在a.php 里面 第一句话就include b.php 那么两个文件都会被访问到
如果我在a.php 里面的 public function __construct() 里面 include ,那么只能访问到b.php , c.php访问不到
这是为什么呀
a.php代码
<?php
class A extends CI_Controller{
public function __construct(){
include 'api/b.php';
}
public function index(){
$test = new nihao;
$a = $test->aaa();
var_dump($a);
}
}
b.php代码
<?php
require_once("c.php");
class nihao{
public function aaa(){
global $chuanglan_config;
return $chuanglan_config['name'].'访问成功了呀!';
}
}
?>
c.php的代码
<?php
$chuanglan_config['name'] = 'zhangsan ';
?>
是不是在CI框架里面 include有 作用域
如果以上代码执行成功,就会返回下面这句话, C.php里面的zhangsan访问不到
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANgAAAAiCAIAAACyS4DFAAADxElEQVR4nO2a26HlIAhF01EqsiC7sRj7yXxEo8BGzfM4M+y/4xtcgubeZTOZJtDy6wWYTNtmIJomkYFomkIGomkKGYimKWQgmqaQgWiaQgZiUnCrj7I4+nVZXPh+Pf+bngAx+nVZ4Db+PYrBKcQFpxgX/Xrb6OjXffDghjwY/fqPHos+iOpGHHoaRDAj3oDo1yWr1PYXHNyyLM6zYKcFvwMWXh69yxMHtyjq+CUBGGMc8qIGYu2JtvAMrf6pRziM3cpP7sPr6oL4ebgLjphWtpjZSxxDV9nLpztaQbRK26xTJRfSjmT9OEdbxBDiYQCalDlnXHlE4jDFs3giBqLmw6uaDUQafvI2MSdsgDVaoEUxUtvZ1WYaHCOixmw8aBEr9h+Nzt1V5L7EH8fQxRBikrSPuXTMh+OqQays3WdkoaEqdCHVucBYTdViLDhNHqdhfz0oK6EDU0c1SSxObJ2wF0CUPZprkF1Aumit4nC1aCRBpGOdAPGZKHWAyCOKh0lvO+hka6Iglp+7K9jVQkSJXK85FoPYLGnHRDQ+PzQwCtVmpslQJi9VHRCbtEMQ2V60LwYgDrChsyFy5DaITyuDqGZgDKII8xRE0T7ZJGchoKq2Suw44VWArkrOJQ22F00MKIg46/VSc84maj4QK+AO6oOoeYCD2H+tfASienwwiPK+xlIzq61uOmyKur3qOQDiRrdW3pvPO+59EElmOG461bNU3jZE1B838QyI3MxVPEK+ApHsK/+ocRvEcqhaj9+TIMo2nKNbIMpw8waIuRh9dOIgot9Pg6g+Qr4DMQld8p4E8bmISCT8dB3E6J2PICDWJefviITXanHBLXsAwtkop830WamZqaU9Z0E8jsNjr+FRwc83deR6EkTtiXHljgha0K4X74g+33FlQNRB1GioqkRAJEOh9xp7QQHndP7O0gMRHBsU8b9Reay4YiTZVQ7BHRCT/XRsuAtUCMTgyPc2tEknM0l9TUZ7zOk58/mmDm4y49Cf1WkgcwtzOosYiojV73oC2XfkenRDJSLSqz+PLaX0FohsnpRv1HcjynripcwutWWW8xxSHFhvUjgEYumBmx/HsjgBhVf+CQwuCNozRg4a/4cg/kjsqD+UEm7drAVx4Hw21gmyXnCyMdvYoxeI7PrZxKPq1cpqZbv2h6EX9GsQn7jb4VEvj/H5HsykAvLHPvgYxEj+dUrJOfA+NK6Xc4jpFX0fEUny+H9Dj4nq16nZZNq2zUA0TSID0TSFDETTFDIQTVPIQDRNIQPRNIUMRNMU+gO2O8gj53oKjAAAAABJRU5ErkJggg==
在框架里 引入类库 是$this->load->library()
关于ci框架的 libraries 有问题请教
控制器a 的代码<?php
class A extends CI_Controller{
public function __construct(){
$this->load->library('api/b');
}
public function index(){
$test = new nihao;
$a = $test->aaa();
var_dump($a);
}
}
libraries 下面有2个文件
b.php
require_once("c.php");
class nihao{
public function aaa(){
global $chuanglan_config;
return $chuanglan_config['name'].'访问成功了呀!';
}
}
class B {
}
还有c.php
<?php
$chuanglan_config['name'] = 'zhangsan ';
?>
为什么 我的__construct 里面 引入了b.php , 却访问不到c.php 你是访问不了 c.php 里的变量吧?
我感觉是变量作用域的问题。加 global 试试?
另外,你这样 new 一个类的方式也不是 CI 正常的代码风格。
张三的歌 发表于 2016-8-25 11:02
请教个问题:
b.php 里面 include c.php 文件
我在a.php 里面 第一句话就include b.php 那么两个文件都会被 ...
不是 CI 代码有作用域,是 PHP 有作用域。。。
用 global 声明你的变量。
页:
[1]