2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 一个面向对象方面的很基础的小白问题 求指点

一个面向对象方面的很基础的小白问题 求指点

时间:2021-07-21 05:41:44

相关推荐

一个面向对象方面的很基础的小白问题 求指点

后端开发|php教程

一个面向对象方面的很基础的小白问题,求指点

后端开发-php教程

在一个类内(其实是thinkPHP的控制器内类),有很多个方法(不是全部方法)会用到一些语句,我希望能将其整合到一个地方(比如一个方法里边?)到处调用一下,求教该怎么写

易语言代码编辑框源码,vscode 字体主题,巡风 ubuntu,tomcat 8.5特性,sqlite创建分区表,easyui 图表插件,html5前端简单框架,网络爬虫的应用场景,linux php命令行,天柱seo优化价格,网站 图片浏览,代码雨网页源码,帝国cms 内容模板php代码lzw

贴出现在的代码样例(是有错误的)

仿天猫商城网站源码,vscode 光标行 颜色,ubuntu系统sdk,tomcat主页 404,sqlite保存手机号,目前主流的前端框架技术交流,微信系统爬虫插件下载,php excel 日期,湖北seo推广运营,网站时间代码,网页输入密码跳转 asp,模板建站教程lzw

class AbcAction extends BbcAction{ public function init(){ $model = M("table1"); $a = $model-> where("id = 1") -> getField("id"); //$a = 1 $this -> assign("a",$a); } public function test(){$this->init()echo $a; $model -> find(1);//希望在这里能用到上边的$a和$model(实际上这样写是报错的,因为这是init内部的变量?//init向前台传递的这个值,好像是可以的 } }

问题很小白,求不吝赐教(眼下就要用到,来不及去系统的学习面向对象了..)

bittorrent python 源码,Ubuntu官方apt源,爬虫彩票技术分析,php写入文件php调用函数,常宁网站seolzw

回复讨论(解决方案)

设置两个属性试试看行吗?$this->model=$model;$this->a=$a;这样你这个类都可以调用了,但是得先调用init()方法。

class AbcAction extends BbcAction{public $model;public $a; public function init(){ $this->model = M("table1"); $this->a = $this->model-> where("id = 1") -> getField("id"); //$a = 1 $this -> assign("a",$this->a); } public function test(){$this->init();//如果是等同__construct为构造函数,在实例化AbcAction时就会执行的话,可不调用echo $this->a; $model -> find(1);//希望在这里能用到上边的$a和$model(实际上这样写是报错的,因为这是init内部的变量?//init向前台传递的这个值,好像是可以的 } }

如果 init 方法是默认执行的,而 test 方法中要使用到 init 方法产生的中间结果

那么 init 方法产生的中间结果至少是要在类中全局的

class AbcAction extends BbcAction{

public function init(){

$this->model = M(“table1”);

$this->a = $model-> where(“id = 1”) -> getField(“id”); //$a = 1

$this -> assign(“a”,$this->a);

}

public function test(){

// $this->init()

echo $this->a;

$this->model -> find(1);

//希望在这里能用到上边的$a和$model(实际上这样写是报错的,因为这是init内部的变量?

//init向前台传递的这个值,好像是可以的

}

}

感谢

不过如果需要共用的这个方法有几十行语句,十来个中间变量需要在其他地方用到,都用$this->xx 来写感觉会比较麻烦

是我的需求出了问题还是只能如此?有没有更好的方法?

是吗?

函数(方法)内的变量是私有的,你不把他变成公有的怎么能用

我从你的钱夹里拿钱化,你乐意吗?

是吗?

函数(方法)内的变量是私有的,你不把他变成公有的怎么能用

我从你的钱夹里拿钱化,你乐意吗?

我好喜欢看你说话的。

你的话不单止能帮我们新人解决问题,而且还很有内涵。

是吗?

函数(方法)内的变量是私有的,你不把他变成公有的怎么能用

我从你的钱夹里拿钱化,你乐意吗?

有没有办法把这一段代码块,引用到需要共用的地方,而不使用”调用共用函数”的方式呢? 这样不就可以直接使用代码里的内容了

说起来这样应该也不叫面向对象了,只是简单的复用.

public function test()

{

//在这里封装一个curl方法直接去请求下面的getData()方法

//$url=’http://192.168.1.1/模块/控制器/getData()’;

curl_setopt($ch, CURLOPT_URL, $url);

}

public function getData()

{

//可以把数据都放在这个方法里

echo json_encode($data);

}

不知道这样是不是更适合你的需求。。。。

public function test()

{

//在这里封装一个curl方法直接去请求下面的getData()方法

//$url=’http://192.168.1.1/模块/控制器/getData()’;

curl_setopt($ch, CURLOPT_URL, $url);

}

public function getData()

{

//可以把数据都放在这个方法里

echo json_encode($data);

}

不知道这样是不是更适合你的需求。。。。

感觉这样太折腾了… 还不如干脆每个需要的地方复制一份这样的代码..

当然可以,但这就不是 TP 的风格了

thinkPHP 主张一事一议,所以有用一个 M 函数就载入一个数据表实例的简单写法

如果你不喜欢这种写法,大可不必再去用它

如果你在他的框架内搭建自己小窝,日后很可能出现严重的协调性问题

毕竟你是不能随性地修改他的内核的

是吗?

函数(方法)内的变量是私有的,你不把他变成公有的怎么能用

我从你的钱夹里拿钱化,你乐意吗?

有没有办法把这一段代码块,引用到需要共用的地方,而不使用”调用共用函数”的方式呢? 这样不就可以直接使用代码里的内容了

说起来这样应该也不叫面向对象了,只是简单的复用.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。