日期:2014-05-16  浏览次数:20342 次

新人关于php的两点疑问
初入php找了个视频教程看了几天
本来打算看书学习的 
说实在的 确实自己也有些浮躁 因为自己本身是那种 说不懂又懂 说懂又不懂的那种
所以就是 看书的时候觉得书上的东西自己都会似得 但是把书扔到一边 自己啥做不出 所以就想干脆找个视频看比书要快点
第一个问题是关于数组的
视频里面说 $arr[0](称之为 索引数组) $arr['xx'](称之为 关联数组)
说是 用索引的比用key的效率高 但是在php中根据使用的感觉来看 $arr[0] $arr['xx'] 怎么看怎么都觉得像是哈希结构 这两者没区别 无论是数字还是其他啥 都是作为key 所以不存在 数字的效率高于其他的 又不是直接的偏移
所以在查数据库的时候 视频也推荐说尽量用 fetch_row 这个函数 其实我也想知道和 fetch_assoc 这个函数除了key之外 还有啥区别、、
第二个问题就是 关于地址栏直接访问php文件的问题
比如 有个php文件 里面只是我写的一个 类 不希望从地址栏就访问到这个文件 也百度了一下 看到好多都是 define一个 在php文件里面判断 是否define了啥 是不是都是这么做的?但是 这样虽然看上去解决了 但是实际上这个文件还是被访问了 心理感觉有点怪怪的
------解决方案--------------------
1.fetch_row和fetch_assoc就只有key的区别
2.在跟目录定义一个.htaccess文件用于限制文件的访问
------解决方案--------------------
1、php 的数组都是哈希数组,不存在下标由于关联键的问题
你的教程是错误的
2、php 代码总是要先加载再运行的,你在php程序里判断的只是是否允许执行其余部分
------解决方案--------------------
关于第二点:

首先脚本就是脚本,必定要运行。如果你是担心某个脚本被得知地址的第三方直接调用,那么比较好的方法是:

公开的脚本都放在/var/www/site1/web下,而不想公开的脚本都放在/var/www/site1/include下。同时对include这个目录设置一个.htaccess文件限制访问就好了。

另外,楼上的说法:php是使用include组织文件的,这个说法也已经很old了。如今的潮流是用Composer