php中所有的变量都要以$开头,js中只要var,let,const一下就可以直接使用。之后使用就不用带这个定义的。但是php中,只要是变量就要一直都有。
可变函数和匿名函数的调用。前面都有$。因为这两种的函数名其实都是变量,在变量后加(),但是用function定义的函数和js一样,直接调用不用加$
php中都是函数的形式,但是js中一些皆对象。所以函数其实是方法,需要要用对象.方法的形式来调用。
js中用的都是对象.属性。或者是对象.函数的形式。因为js一些皆对象,调用也也用对象和属性的形式来调用。
字符串的链接,是用来两个都是变量,或者一个是变量,一个是字符串的链接,如果两个都是字符串,就没必要用点了。写在一起就可以了。
什么时候要对引号和\使用转义,引号,在单引号内部,只能转义单引号和\,双引号内部,可以转义很多。转义是为了避免,内容中的引号,或者内容中的\(如果这个\和引号链接了,比如命名空间中的\)和开头的引号引起了冲突,所以要转义。如果不转义,那字符串的长度就提前结束了。
php的是函数,所以一般都有返回值。js中的是方法,所以一般都没有返回值,方法,是用来给属性赋值的。所以可以不用返回值。
命名空间,定义的时候只要到文件夹,使用的时候要到具体的类。
tp和laravel都是单入口的模式,单入口,只要在入口文件中引入一次,那以后所有的请求,都会有这个引入的问题,因为 每次请求都是要从这个入口进入的,然后再dispatch。ecshop不是单入口模式的。所以要在每个请求的页面都引入需要的文件。
命名规范
目录用小写和下划线
类的文件名,用大驼峰,其他的文集用小写和下划线
函数名,用小写加下划线
方法和属性用小驼峰
常量用大写和下划线
总之,类和类的文件名,用大驼峰。属性和方法用小驼峰。常量全大写和下划线。其余目录名和函数用小写和下划线。
echo是关键字,所以在使用的时候不用加(),print_r和var_dump是函数,所以在使用的时候要写();
$arr[] = $v;每次复制,就相当于网数组$arr中再新增一个元素。
isset()判断是否设置了,请求不是null
empty()判断是否为空。
""
(空字符串)0
(作为整数的0)0.0
(作为浮点数的0)"0"
(作为字符串的0)null
false
array()
(一个空数组)$var;
(一个声明了,但是没有值的变量)
php中,实参可以大于形参,但是实参不能小于形参,除非形参有默认值。
php中,双引号的变量可以被识别解析,及时这个变量被单引号包裹。只要还被双引号包裹,就可以被解析。
js中ajax来请求服务器api。php中用curl或者fie_get_content来访问别的网址。
url不区分大小写,所以路由中的地址,一般都是小写加上下划线
对与cookie或者session来存储数组。数组的小标相当于数据库中的id。所以要起的有意义。这样可以方便取的时候更加好取。
对于循环内的数据组,数组的下标可以为[] => $arr[],或者数组的下标为循环索引。那这样得到的新数组都是新增元素。
数据类型的自我理解:
不同的数据类型有它们自己的特性。数据类型知识保存数据的一种方式(这是保存在内存中的,不是持久化存储)。比如hash,比如set。本质上都是用某种规则来更好的保存数据,最终能方便以后的使用。
不同的数据类型也有不同的api,可以方便对数据的处理和筛选=>可以方便更好的取到想要的数据,比如放到数组中,放到set也能实现。但是利用set的特性,放到set中,能更为方便的取到想要的数据。
redis也有发布和订阅。可以用来做消息队列。
递归的自我理解:递归也是循环