Home\Common\Mapclassphp文件
<php
namespace Home\Common;
class Map {
static function getName() {
$map = array(
'0' => '张三',
'1' => '李四',
'2' => '王五',
'3' => '赵六'
);
return $map;
}
}
Home\Controller\IndexControllerclassphp文件
<php
namespace Home\Controller;
use Think\Controller;
use Home\Common\Map as map;
class IndexController extends Controller {
private $sex = array(0,1);
private $name = map::getName(); // 写法1
// 测试 静态函数 类私有变量赋值
public function getName() {
$name = map::getName(); // 写法2
var_dump($name);
}
}
其中,写法1出错,显示:
写法2显示:
如果想私有变量赋值,可以构造函数赋值,即在__construct()里赋值:
$this->name = map::getName(); // 注意千万别写成$this->$name
类的变量成员叫做“属性”,或者叫“字段”、“特征”。属性声明是由关键字 public , protected 或者 private 开头,然后跟一个普通的变量声明来组成。 属性中的变量可以初始化,但是初始化的值必须是常数 ,这里的常数是指 PHP 脚本在编译阶段时就可以得到其值,而不依赖于运行时的信息才能求值。
在类的成员方法里面,可以用 -> (对象运算符):$this -> property(其中 property 是该属性名)这种方式来访问 非静态属性 。 静态属性 则是用 :: (双冒号):self::$property 来访问。
当一个方法在类定义内部被调用时,有一个可用的伪变量 $this。$this 是一个到主叫对象的引用(通常是该方法所从属的对象,但如果是从第二个对象 静态 调用时也可能是另一个对象)。
具体请参考:>
第一步:在Home模型的cofig文件配置如下
//重定义网站的一些URL地址
/ 模板相关配置 /
'TMPL_PARSE_STRING' => array(
'__PUBLIC__' => __ROOT__ '/Public',
'__JS__' => __ROOT__ '/Public/Js',
'__CSS__' => __ROOT__ '/Public/Css',
'__IMAGE__' => __ROOT__ '/Public/Image',
'__DATA__' => __ROOT__ '/Data/'
),
第二步:indexhtml文件中直接引用
{load file='__static__/csscss'}
<link rel="stylesheet" href="__static__/csscss">
{load file='__static__/jsjs'}
<script src="__css__/jsjs"></script>
<img src="__static__/imgjpg">
满足thinkphp伪静态(url重写)条件:
1、 服务器开启url_rewrite功能,linux空间的php虚拟主机只需要开启apache的mod_rewriet,如果是iis60就要安装ISAPI Rewrite模块,apache只要开启Mod_rewrite功能就可以了。无忧主机是linux系统的空间,开通空间默认支持。
2、 Linux空间编辑htaccess文件,windows空间编辑>
1、实现伪静态方法:
1)隐藏入口文件:>
下面是thinkphp5目录结构,你要找的模板文件就是在view视图目录,当然都是可以自定义改变的。
project部署根目录
├─application 应用目录(可设置)
│ ├─common 公共模块目录(可更改)
│ ├─index 模块目录(可更改)
│ │ ├─configphp 模块配置文件
│ │ ├─commonphp 模块函数文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ └─ 更多类库目录
│ ├─commandphp 命令行工具配置文件
│ ├─commonphp 应用公共(函数)文件
│ ├─configphp 应用(公共)配置文件
│ ├─databasephp 数据库配置文件
│ ├─tagsphp 应用行为扩展定义文件
│ └─routephp 路由配置文件
├─extend 扩展类库目录(可定义)
├─public WEB 部署目录(对外访问目录)
│ ├─static 静态资源存放目录(css,js,image)
│ ├─indexphp 应用入口文件
│ ├─routerphp 快速测试文件
│ └─htaccess 用于 apache 的重写
├─runtime 应用的运行时目录(可写,可设置)
├─vendor 第三方类库目录(Composer)
├─thinkphp 框架系统目录
│ ├─lang 语言包目录
│ ├─library 框架核心类库目录
│ │ ├─think Think 类库包目录
│ │ └─traits 系统 Traits 目录
│ ├─tpl 系统模板目录
│ ├─htaccess 用于 apache 的重写
│ ├─travisyml CI 定义文件
│ ├─basephp 基础定义文件
│ ├─composerjson composer 定义文件
│ ├─consolephp 控制台入口文件
│ ├─conventionphp 惯例配置文件
│ ├─helperphp 助手函数文件(可选)
│ ├─LICENSEtxt 授权说明文件
│ ├─phpunitxml 单元测试配置文件
│ ├─READMEmd README 文件
│ └─startphp 框架引导文件
├─buildphp 自动生成定义文件(参考)
├─composerjson composer 定义文件
├─LICENSEtxt 授权说明文件
├─READMEmd README 文件
├─think 命令行入口文件
PHP 有个 __callStatic 方法了解一下;
class A {
public static function __callStatic( $name, $args) {
// 当调用了类中不存在的静态方法时,会自动执行这个方法
// 然后在这个方法中可以去主动调用非静态方法
return self::$name( $args );
// $name 是方法名称, $args 是调用方法时传的参数
}
public function demo() {
echo 'this is demo function';
}
}
print_r( A::demo() );
以上就是关于ThinkPHP遇到的类私有变量赋值问题全部的内容,包括:ThinkPHP遇到的类私有变量赋值问题、thinkphp无限下级查找实现方法,可以通过递归和预排序历遍算法、ThinkPHP3.2.*版本 thinkphp怎么引入css、js、img文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)