我一直在阅读一些PHP代码,我对一件事感到困惑。我很抱歉,如果它可能是基础知识,但我找不到任何关于这一点(不知道如何搜索它)。
有一段时间他们使用“_user”。我发现它引用了USER类。但是,我找不到将_user引用到USER类的任何地方。
order.php文件:
navigationOptions: ({ navigation }) => ({
header: null,
tabBarIcon: ({ focused }) => {
const { routeName } = navigation.state;
....
return (
<TochableWithoutFeedback onPress={()=>{navigation.goback(iconName)}>
// undefined is not a function when I press the Button
// deeper screen. (not getting any error on Main)
<Ionicons
name={iconName}
size={30}
style={{ marginBottom: -3 }}
color={focused ? Colors.tabIconSelected : Colors.tabIconDefault}
/>
<TochableWithoutFeedback>
);
},
答案 0 :(得分:-1)
1)有些人在变量名之前使用下划线来表示私有变量。这只是一个约定,并且对代码的功能没有影响。如果您想了解有关变量可见性的更多信息,请参阅:http://php.net/manual/en/language.oop5.visibility.php。
2)如果没有我们看到更多的代码,这个问题就无法回答。在类的某个地方,有一个$ _user的setter方法,或者它在类的构造函数中设置。由于它似乎是私有的,因此这是唯一的两个选项。&lt; - 提供了更多代码。新答案:
2)变量$ user是通过ORDER类的构造函数引入的。在代码中的某处,您将找到USER类,它描述了如何构建对象$ user。如果你想知道$ user来自哪里,请在你的代码中搜索“new Order”。你会找到所有地方,在那里创建ORDER实例,你会看到使用的参数。你也可以这样做使用“new User(”,您将找到创建USER实例的所有位置。
如果您是OOP的新手,我建议您阅读一些介绍性文章。您可以从PHP站点本身的文章开始:http://php.net/manual/en/language.oop5.php或查找一些在线课程或教程,例如:https://www.codecademy.com/courses/web-beginner-en-bH5s3/0/1
您提供的ORDER类的一个重要方面是变量$ db,$ settings和$ user作为引用给出。这意味着如果有人操纵$ db实例上的任何内容,这些更改将是全局的。有可能系统中只有一个$ db,$ settings和$ user的实例,它们通过引用传递。另见:http://php.net/manual/en/language.references.pass.php