11
回答
学习PHP5个月了 总感觉自己学不进去 我应该报着什么样的心态去学习
开发十年,就只剩下这套Java开发体系了   
自己在培训班 学习 总感觉自己的学习方式不对  求大神们 指导  老师讲的递归 RBAC  就搞不懂了  


敲不出来就 头疼  怎么办  
<无标签>
举报
余空
发帖于2年前 11回/633阅
共有11个评论 最后回答: 2年前

找点项目做 , 比如我自己做的博客 cloudawn.com 

你在课上光听老师讲语法当然枯燥无味了 , 另外你们老师也就教教基本语法 , 缺乏实际项目经验 .

--- 共有 2 条评论 ---
铂金小狗回复 @余空 : 你博客看看 . 2年前 回复
余空不会啊 我也自己做了博客 现在在做防ecshop做电子商城 就是感觉自己不会 比班里的人 差好多 2年前 回复
递归操作PHP中还是挺常见的,向我们PHP开发者在开发中经常用来输出数组的var_dump/var_export/print_r这些函数都涉及递归操作,理解递归的关键在于参数传递和结束条件,比如你递归遍历一个数组(树),元素不再是数组的时候就会返回了,比如用PHP实现类似这个功能:
<?php
header('Content-Type: text/plain; charset=utf-8');
function ve($var, $i = '') {
	$indent = '  '.$i;
	if(is_array($var)) { //结束条件
		echo "[\n";
		foreach($var as $k => $v) {
			echo $indent;
			if(is_array($v)) {
				echo $k." => ";
			} else {	
				echo $k;	
			}
			if($k === 'GLOBALS') {
				echo "*RECURSION*\n";
				echo substr($indent, 0, -2)."]\n";
				return;
			} else {
				ve($v, $indent); //参数传递
			}
		}
		echo substr($indent, 0, -2)."]\n";
	} else {
		if($indent == '  '){
			echo $var."\n"; //ve('php');
		} else {
			echo " => ".$var."\n";
		}
	}
}
$arr = array(
	$GLOBALS,
	'abc',
	'php' => 'best',
    'win' => array(
        'dis' => 1024,
        'age' => array(
			'a1' => 512,
			'a2' => 15
        )
    ),
    'osx' => array(
        'dis' => 512,
        'age' => 15
    ),
    'lin' => array(
        'dis' => 512,
        'age' => 25,
        'lin' => array()
    )
);
ve($arr); //输出
[
  0 => [
    _GET => [
    ]
    _POST => [
    ]
    _COOKIE => [
    ]
    _FILES => [
    ]
    GLOBALS => *RECURSION*
  ]
  1 => abc
  php => best
  win => [
    dis => 1024
    age => [
      a1 => 512
      a2 => 15
    ]
  ]
  osx => [
    dis => 512
    age => 15
  ]
  lin => [
    dis => 512
    age => 25
    lin => [
    ]
  ]
]



RBAC(Role-Based Access Control,基于角色的访问控制):
用户表(user)+关系表1+群组表(role)+关系表2+权限表(permission)
一个用户拥有若干群组(角色),一个群组(角色)拥有若干权限.
用户和群组关联,群组和权限关联.
添加新权限:就是往权限表插入记录
分配权限给群组:就是往群组权限关系表里插入关系记录.
分配权限给用户:就是往用户群组关系表里插入关系记录.
这种方式的好处在于一个用户可以属于多个群组,扩展性好一些,但也复杂一些.

要简单,你可以只用两张表管理用户权限,一张user表,一张group表.
user表每个用户都对应一个group.
group里每个字段就是一个权限,这样就可以开关不同的权限组合不同的用户组了.
缺点在于后期增加权限则需要添加一个字段到group表.
--- 共有 2 条评论 ---
eechen回复 @余空 : 不是什么大神,就是我最近也在思考递归和权限管理这些东西,可以说,都是Web开发中的难点吧,新手可能理解起来吃力些,但建议结合一些有用的实例来学习,就好多了,比如上面的递归遍历数组,还有递归遍历目录文件,这些东西有时还是能用上的. 2年前 回复
余空一看就是大神级别的 我在用tp框架都 不怎么明白 好屌 2年前 回复

想想交出去的学费和花费的时间,如果学不好,既浪费了时间,又浪费了金钱。既然选择了这行,那就好好学呗,不懂就多问,多看,多写。最后想想,你学习的可是“世界上最好的语言”啊


顶部