ThinkPHP遇到的类私有变量赋值问题

ThinkPHP遇到的类私有变量赋值问题,第1张

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文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10074456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存