PHP 板


LINE

看板 PHP  RSS
关於建构子内的函数,若需要有值回传。请问可以这麽用吗? 有一 config.php ============================== <?php class config { function __construct() { $this->getvalue(); } function getvalue() { echo 'log'; //埋确定有进入函数的log return 10; } } ?> ============================== 然後我在主php去引用并使用config.php,想要得到里面getvalue的回传值。 但却无法得到..,请问可能原因为何? main.php =========================================== <?php require_once __DIR__ . '/config.php'; $value = new config(); echo $value; ?> =========================================== echo 只会得到 'log'却无法得到 return的值(10) 还是说其实问不能样用呢,刚初学请各位大大帮忙,谢谢.. --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.163.89.30
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1532398563.A.D83.html
1F:→ MOONRAKER: 这是当然的好吗,constructor不回传东西 07/24 11:04
2F:→ MOONRAKER: 你有什麽理由非要这样 连多呼叫一个$value->getValue() 07/24 11:05
3F:→ MOONRAKER: 都不想吗 07/24 11:05
谢谢M大回覆~没错我去多呼叫可以解决!! 问题原由是因为我在处理连结资料库的时候,有出现有连上,但无法query问题。 细找问题後,发现CONNECT根本没有回传,所以才衍生出这样的提问。 https://blog.csdn.net/welovesunflower/article/details/7776438 里面范例他有一个 db_connect.php ,相较於我上头的config.php,准备提供引入用。 内容有断如下: class DB_CONNECT { // constructor function __construct() { // connecting to database $this->connect(); //这里用了类似作法 } function connect() { // import database connection variables require_once __DIR__ . '/db_config.php'; // Connecting to mysql database $con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) ...; .... // returing connection cursor return $con; //回传connect //这里用了类似作法 } 再来范例里面有一个 get_all_products.php,相较於我的main.php, 里面开头如下: ============================================== ... // include db connect class require_once __DIR__ . '/db_connect.php'; // connecting to db $db = new DB_CONNECT(); //此处根本没有得到值。 // get all products from products table $result = mysql_query("SELECT *FROM products") or die(mysql_error()) ... ============================================== $db因为没有得到值,所以query不到。 当然如您建议我加个 $con = $db->connect(); 就没问题了。 所以是不是其实真不该这样写呢? 应该明了了!!! 观念问题,谢谢M大~
4F:→ MOONRAKER: 这样我就看不懂了 为什麽他的资料库包装会这样 07/24 11:59
5F:→ MOONRAKER: 一时想不通 但是什麽时候了还在用mysql_connect()这种 07/24 12:13
6F:→ MOONRAKER: 烂招 新的php早就没了 new会跑不出东西八成是这个原因 07/24 12:15
7F:→ MOONRAKER: 赶快找个教用pdo连资料库的文件来看吧 起码也要mysqli 07/24 12:16
8F:→ MOONRAKER: 依照他这种烂招 再connect()一次也没有东西 07/24 12:16
!!! 原来有这东西!!谢谢M大指导!! ※ 编辑: goodsheng (118.163.89.30), 07/24/2018 13:25:40
9F:→ MOONRAKER: 转一下php.net正式文件的说明 http://bit.ly/2NHF4v9 07/24 13:54
10F:→ MOONRAKER: 从php 5.5开始废弃 7.0拿掉 如今php 7.2都出了 07/24 13:55
11F:→ MOONRAKER: WAMP一类套件包当然不会再放旧的 虽然你要也是找得到 07/24 13:56
12F:→ goodsheng: 好的!! mysqli或是PDO处理 07/24 13:59
13F:→ xdraculax: $db 得到了 class 啊,return 是供额外呼叫用 07/25 01:20
14F:→ xdraculax: 它的 __construct 也没有 return $this->connect() 07/25 01:21
15F:→ xdraculax: 你怎麽会误以为它 $db 是想取 $con 07/25 01:22
16F:→ xdraculax: mysql_query 没代入 con 就是预设上一个连线 07/25 01:24
17F:→ xdraculax: 范例并没有错应该要有资料,没资料一定是别的有错 07/25 01:25
18F:→ xdraculax: 以上指正你 new class 的误解而非说可继续用 mysql_xx 07/25 01:29
19F:→ MOONRAKER: 有啦昨晚有想出来 他是占mysql_query()没给连线物件 07/25 14:52
20F:→ MOONRAKER: 就自动沿用最近那个的便宜 实在不可取 07/25 14:52
对,其实一开始也不认为他会return东西,因为他mysql_query并没有要带入$con。 而照理说接下来的操作应该要沿用所谓"预设上一个连线" 但实作後却发现并没有,他并没有延用到,所以mysql接下来操作都没有反应。 所以我就天真自己加了$db进去,天真以为$db有东西。 $result = mysql_query($db,"SELECT *FROM products") or die(mysql_error()) 想当然没反应,$db不会有东西,因为如x大解说,return不回东西的。 但後来解决方式是再呼叫一次connect(),且也要带入$con,才能成功,没带入不行。 $con = $db->connect(); $result = mysql_query($con,"SELECT *FROM products") or die(mysql_error()) 所以才会有建构内return的疑问.. 所以现在衍生的问题是: 1.一开始的方式,由建构来初始连线,但回主程式时,却无法直接沿用後连线。 2.後来改再次呼叫connect()的方式,看起来也是无延续上一连线。必须要带入$con。 看起来好像是同一问题,就副程式实体後的连线无法给主程式用? 但这问题可能也不是很重要,因为可以先用了.. (注:上述mysql我也都改成mysqli用了) 再次谢谢x大及M大~~ ※ 编辑: goodsheng (118.163.89.30), 07/26/2018 16:05:02







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP