本文目录一览:
- 1、php中超类,父类,基类,派生类,抽象类,子类,继承类的区别?另外还有些别的什么类?它们还有那些别名?
- 2、php的namespace是什么?有什么用
- 3、ThinkPHP中,关联查询,怎么定义别名?
- 4、thinkphp关联模型怎样设置字段别名
php中超类,父类,基类,派生类,抽象类,子类,继承类的区别?另外还有些别的什么类?它们还有那些别名?
超类也就是父类,用来被继承的!
基类就是基础类
派生类也叫子类,俩是一回事!
抽象类是一个不完整的类,只能作为基类,主要是描述类的!里面只有方法体,没有实际操作方法!
你这都从来听来的乱七八糟的东西,估计你自己都要被这些搞的晕头转向!
php的namespace是什么?有什么用
1. namespace Zend\Http\PhpEnvironment;
这句代码定义了一个命名空间,你可以理解为定义一个名称为 Zend\Http\PhpEnvironment 的域名。
在定义了之后,下面所申明的class, interface, const等都是在申明的这个“域”里面的。当引用一个申明了命名空间的包含文件,想要调用这个里面的东西,那就必须:
调整当前脚本也到这个域名里,否则,就得用namesapce的全称。
比如,inc.php 文件:
namespace Zend\Http\PhpEnvironment;
class Bar {}//定义了一个类
则其他文件调用时:
// 访问Foo的第一种方法,用全称
require 'inc.php';
$foo = new \Zend\Http\PhpEnvironment\Bar();
// 访问Foo的第二种方法
namespace Foo; // 调整当前脚本到Foo这个ns域,而且namespace申明必须在第一句
require 'inc.php';
$foo = new Bar();
2. use关键字目的是使用ns的别名:
比如说,上面的
// 访问Foo的第一种方法,用全称
require 'inc.php';
$foo = new \Zend\Http\PhpEnvironment\Bar();
用uses后,写法如下:
use \Zend\Http\PhpEnvironment as pe; //定义别名
$foo = new \pe\Bar(); //用短的别名来代替原来的
如果省略后面的as ....,那么,就可以直接用最后一节的文字来代替,比如,上面的:
use \Zend\Http\PhpEnvironment; //定义别名
$foo = new \PhpEnvironment\Bar(); //用短的别名来代替原来的
================================================
php官方手册中的相关内容:
在PHP中,namespace命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:
1. 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
2. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
PHP 命名空间提供了一种将相关的类、函数和常量组合到一起的途径。
PHP 命名空间支持有两种使用别名或导入方式:为类名称使用别名,或为命名空间名称使用别名, 别名通过操作符 use 来实现。
ThinkPHP中,关联查询,怎么定义别名?
比如你有两个表 pre_first pre_second 并且你数据库配置文件已经配置了表前缀那么你可以这么写
$First=new \Think\Model("First");
//联表查询条件
$arrJoin=array(
"__SECOND__ as s on f.id=s.id ",
);
$list=$First-alias('f')-join($arrJoin,'LEFT')-select();
thinkphp关联模型怎样设置字段别名
thinkphp的关联模型,就是简化你的jion操作。所以,本质上,关联模型,就是处理表连接关系的。归根结底的,就是让你在用模型操作的时候,简化SQL查询的join操作。(是简化操作,而不是改变SQL语句。)-php创建类别名
先举个例子。一个用户表,一个文章表。一个用户对应多篇文章。然后,你现在会经常出现如下需求:取得某人的文章记录,但是呢,只要求显示,用户名,文章名,文章ID,文章日期(其他的,比如,什么用户邮箱啊,用户密码啊,文章类型啊,文章修改日期啊,文章标签啊,你都不需要)这个时候,你就可以定义一个试图模型,然后在 $viewFields 里面,就可以把你经常使用需要调用的那个几个字段,按照thinkphp的规定,定义进去。-php创建类别名
如下参考
class ArticleViewModel extends ViewModel {
public $viewFields = array(
'Article'=array('name','title'....其他字段),
'Author'=array('title'='category_name', '_on'='article.auid=author.id'),
'Article_class'=array(字段定义如上,具体规则,下面有介绍, '_on'=上面已经给你写了一个,这里其实就是写,article,和article_class 的主外键,对应关系。即JOIN ....ON..语句,ON部分的多内容),-php创建类别名
'article_type'=array('field_realename'='field_alias'。这里就相当于查询语句SELECT 字段 字段的别名。这样的对应关系。)
);
}