请教一个关于 class 的问题

2017-01-16 16:38:29 +08:00
 ericgui
我要构建一个 class , class 里面有一个数组,

<?php

class Person {

protected $ages = array('Liming'=>23);

public function getAge($name){
$age = $ages[$name];
echo $age;
}


}

$p = new Person();
$p->getAge('Liming');

?>

这代码死活运行不起来。报错信息: Undefined variable: ages

但如果把这代码改为过程式,立马就运行起来了。

所以我就纳闷了,这个 OO 方式,是不是哪里不对?实在是 google 都不知道用什么关键词,不好意思了。

求赐教。
2159 次点击
所在节点    PHP
12 条回复
waczx
2017-01-16 16:43:03 +08:00
$age = $this->ages[$name];
waczx
2017-01-16 16:43:38 +08:00
运行起来了,只不过没结果报了 notice
ericgui
2017-01-16 16:50:12 +08:00
@waczx 谢谢。你给的解决方案是对的。果然是这里出了问题,我之前也试了$age = $this->$ages[$name];也报错,看来是多了个$符号。说真的,这个$一会出现一会不出现,也是让人感觉实在 有点难以捉摸啊。
waczx
2017-01-16 17:11:33 +08:00
@ericgui 面向对象的基础:类
g8287694
2017-01-16 17:16:24 +08:00
@ericgui 对象和数组的区别
ericgui
2017-01-16 17:16:29 +08:00
@waczx 哎,实在抱歉,问了这么个啥问题。谢谢。我刚才看了 php 手册,确实是这个问题。是在 class 里可以找到。
jianzhiyao020
2017-01-16 17:18:30 +08:00
弄个 IDE 吧,减少很多错误,例如 PHPSTORM
ericgui
2017-01-16 19:47:37 +08:00
@jianzhiyao020 好的,我觉得似乎我真的要试试好一点的 IDE 了,现在用的是 HBuilder ,不知道你们听说过没有。反正我目前觉得写 html , css , JavaScript 还是挺方便的,其他的就不好说了。
jianzhiyao020
2017-01-17 08:56:51 +08:00
@ericgui 用 PHPSTORM 吧,配置好点的话, code 速度加成 666
ericgui
2017-01-17 13:34:16 +08:00
@jianzhiyao020 phpstorm 写 JS 和 CSS 代码方便吗?毕竟写代码肯定不是纯 php ,里面肯定有 js 和 css 的代码。是不是加个插件就可以了?
jianzhiyao020
2017-01-18 12:12:43 +08:00
@ericgui PS 是目前用过最好用的 IDE , JS 啥的该有功能还是有的,没有就插件
1762628386
2017-02-27 22:56:36 +08:00
Undefined variable: ages 英语翻译是 未定义变量 ages

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/334939

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX