php类的命名
‘壹’ php 命名空间为什么类前要加\
//是谁告诉你一定要加????只有在完全限定名称的情况下才需要加
//如果不加,将会在当前命名空间下寻找这个类
‘贰’ 如何在PHP中定义一个类
当你声明一个类,你需要列出对象应有的所有变量和所有函数?被称为属性和方法图1中显示了一个类的构成. 注意在大括号({})内你只能声明变量或者函数. 图2中显示了如何在一个类中定义三个属性和两个方法.
以下为引用的内容:
class Name extends Another Class
{
Access Variable Declaration
Access Function Declaration
}
name = $name;
$this->password = $password;
$this->lastLogin = time();
$this->accesses++;
}
// 获取最后访问的时间
function getLastLogin()
{
return(date("M d Y", $this->lastLogin));
}
}
//创建一个对象的实例
$user = new User("Leon", "sdf123");
//获取最后访问的时间
print($user->getLastLogin() ."\n");
//打印用户名
print("$user->name\n");
?>
当你声明属性,你不需要指明数据类型. 变量可能是整型,字符串或者是另一个对象,这取决于实际情况.在声明属性时增加注释是一个好主意,标记上属性的含义和数据类型.
当你声明一个方法,你所做的和在类外部定义一个函数是一样的. 方法和属性都有各自的命名空间. 这意味着你可以安全地建立一个与类外部函数同名的方法,两者不会冲突. 例如,一个类中可以定义一个名为date()的方法. 但是你不能将一个方法命名为PHP的关键字,如for或者while.
类方法可能包含PHP中所谓的type hint. Type hint 是另一个传递参数给方法的类的名字. 如果你的脚本调用方法并传递一个不是类的实例的变量,PHP将产生一个”致命(fatal)错误” . 你可能没有给其它类型给出type hint,就像整型,字符串,或者布尔值. 在书写的时候, type hint是否应当包含数组类型仍存在争议.
Type hint是测试函数参数或者运算符的实例的数据类型的捷径. 你可能总是返回这个方法. 确认你强制让一个参数必须是哪种数据类型,如整型. 图3 确保编译类只产生Widget的实例
以下为引用的内容:
<?php
//组件
class Widget
{
public $name='none';
public $created=FALSE;
}
//装配器
class Assembler
{
public function make(Widget $w)
{
print("Making $w->name\n");
$w->created=TRUE;
}
}
//建立一个组件对象
$thing = new Widget;
$thing->name = 'Gadget';
//装配组件
Assembler::make($thing);
?>
除了传递参数的变量外,方法含有一个特殊的变量. 它代表类的个别实例. 你应当用这个来指向对象的属性和其它方法.一些面向对象的语言假设一个不合格的变量提交给本地属性,但在PHP中方法的任何变量只是在方法的一定范围内. 注意在User类的构造函数中这个变量的使用图2.
‘叁’ PHP类的命名规则
public 是表示该属性公用,类内外都能调用。(类外是指实例话后的调用,或静态调用)private 是表示该属性或方法只能在该类内使用,不能继承,类外也不能调用。
global 是全局变量,在程序的任何位置都能使用,在方法或类方法内使用前必须声明该变量是全局变量global $var
‘肆’ php类文件中,类文件名和方法名要一样吗
你好,对于一些PHP框架来说是有要求的,其实这也是一个良好的习惯。顺便提一下,在linux服务器里,因为文件是要区分大小写的,所以可能你在windows系统的电脑上开发的项目虽然在本地可以运行,但是放到linux服务器上,就会出现各种文件找不到的情况,所以,在使用PHP框架前最好是要仔细查看路由、控制器、模块、视图这些文件的命名要求。一般情况 都是要求文件名称和类名称首字母大写。
希望我的回答可以帮助到你,望采纳
‘伍’ tinkphp5.1手册命名规范中类的文件名均以命名空间定义怎么理解
这句话应该整句一起理解,不用单独拿前面一段出来。只要能保证命名空间的路径和类库文件所在路径一致即可
比如Index.php就放在app/index/controller目录下
那么Index.php的命名空间就是app/index/controller
‘陆’ php 命名空间是什么意思
从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。PHP 命名空间提供了一种将相关的类、函数和常量组合到一起的途径。
具体举个例子,文件foo.txt可以同时在目录/home/greg和/home/other中存在,但在同一个目录中不能存在两个foo.txt文件。另外,在目录/home/greg外访问foo.txt文件时,我们必须将目录名以及目录分隔符放在文件名之前得到/home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。
在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:
用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
‘柒’ PHP 命名空间多类定义 引用问题
是引用的System.Runtime.InteropServices命名空间下的一个属性类DllImport吧import的I要大写如果不是大小写问题你把代码截图发来看看
‘捌’ 如何在thinkphp里面自定义类
类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php;
类的命名空间地址和所在的路径地址一致,例如 Home\Controller\UserController类所在的路径应该是 Application/Home/Controller/UserController.class.php;
确保文件的命名和调用大小写一致,是由于在类Unix系统上面,对大小写是敏感的(而ThinkPHP在调试模式下面,即使在Windows平台也会严格检查大小写);
类名和文件名一致(包括上面说的大小写一致),例如 UserController类的文件命名是UserController.class.php, InfoModel类的文件名是InfoModel.class.php, 并且不同的类库的类命名有一定的规范;
打开一个thinkphp里面自带的类文件对照着理解就好了