“_user”&使用下划线是一个捷径吗?

时间:2017-12-07 06:17:36

标签: php

我一直在阅读一些PHP代码,我对一件事感到困惑。我很抱歉,如果它可能是基础知识,但我找不到任何关于这一点(不知道如何搜索它)。

有一段时间他们使用“_user”。我发现它引用了USER类。但是,我找不到将_user引用到USER类的任何地方。

  1. 下划线_是否有特殊含义?
  2. 他们在哪里以及如何将USER类与_user?
  3. 相关联

    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>
             );
      },
    

1 个答案:

答案 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