虚拟目录和虚拟主机的关系?
虚拟主机可以设置多个,虚拟目录呢?

以为phpstorm和Intellij一样,结果不是!
它直接将所有内容上传(部署)到服务器即可,不像Intellij那样还调用服务器??

//php标准风格
<?php
?> //短标记风格--需要在php.ini中开启short_open_tag
<?
?> //asp风格--需要在php.ini中开启asp_tag
<%
%> //script标记风格
<script language="php">
</script>

php的关键字 不区分大小写,但变量名 区分。
所有变量名必须以$开头,但$不是变量的组成部分!!!仅仅表示后面跟着变量名。其他规则同js。

php也可以获取地址!如 &$a
销毁变量:unset($a);  --php的垃圾回收机制。
如果 $b='a'; 那么 $$b 就是 $a 。卧槽---这也行。
--关键是可以拼接函数名调用函数。

    function fun($type){
$fn = 'imagecreatefrom'.$type;
$fn();
}

常量使用 define(_var, _val) 定义,没有$符号。
默认情况下,常量名是区分大小写的。
也可以不区分大小写。define(_var, _val, _capSensitive); 第三个值用于设定是否区分大小写(true不区分)。
defined(_name); 可以查看常量是否定义。

变量类型:标量类型、复合类型、特殊类型。

标量类型:整数型integer、浮点数float(也称double!)、布尔型boolean、字符串型string(单、双引号)。
    string

    echo 'my name is $name';

    echo "my name is $name";

    是不同的,后者输出$name对应的值。
         就是说string单双引号是不同的,单引号是我们熟知的,双引号则会替换变量--类似占位。
       -- 但是,注意,php不知道这个变量名字到什么地方截止!!!

    -- 解决办法:① 加个空格。② 加{},注意 {$ 之间不能有空格,但是可以写成 ${  --卧槽!!直接输出{}需要转义。

复合类型:数组array、对象object
    $arr = array(v1, ...); // 默认的角标索引
    $arr = array(k1 => v1, ...); //字符串下标(相当于键值对)。k1也可以是integer!卧槽。
        注意,上面这个,相当于给键赋值,所以如果有多个相同的键,那只会输出最后的键。
        print_r($arr);可以用来输出数组,但也只会输出最后的键(如果重复)。

特殊类型:资源类型resource、无类型NULL

echo   输出true为1,false为空。
print_r();  输出数组,包括键值对。
var_dump();  可以输出数据类型和值。    
print   类似echo,但一次只能输出一个参数。输出成功返回1,否则返回0.

注释:
    单行注释:// #
    多行注释:/**/

运算符:
    + 在php中只能做数学运算。 换句话说,会把操作数转成数字进行运算!!!
        echo '10'+'20';//30
        echo '10a'+'20b';//30

=== 全等于 (比较值和类型)
    !==    不全等于

== 会自动转换类型,例如字符串和数字比较,会将字符串转成0。(js中不会这样)

. 字符串连接符!!!!!!!!!!!!卧槽,为什么我这实现不了???---因为仅限于字符串操作。
    .= 见上面!!!

$_POST(field); //获取POST提交的字段内容
isset(var); //判断是否有变量var
is_numeric(var); //判断var是否数字
is_int(var); //判断var是否【整形】,不是判断整数!!例如'10'
//将整形转成整数:+-*/都可以!

if ... elseif ...  //注意, else if 也可以。

foreach($arr as $var) ...   //专门遍历数组用
foreach($arr as $key=>$value) ...   //同上

mysql  :  default插入默认值;null自动增长?

phpmyadmin,web形式可视化界面。

php本身还是一个框架,所有功能都由扩展提供。扩展都在 //ext/ 下,需要开启才行。
例如,通过php连接mysql,必须开启php的mysql扩展。

extension=php_mysql.dll    --wampserver默认是开启的!

exit($msg); die($msg); --都是中止执行。die()更过分,后面的都不再返回,包括html的东西。
中级写法:

$link = mysqli_connect('localhost','root','a') or die('数据库连接失败!');

--但是,这样会在页面上显示错误信息,这样可能会暴露一些敏感信息(如user)。
     --可以通过@来屏蔽错误信息。  
终极写法:

@mysqli_connect(..)..

执行语句:mysql_query($sql) or die($msg); //选择数据库 $sql = 'use data';  //mysqli_query($link, $sql)

注意,foreach只能循环php的数组,无法遍历resource -- mysqli_query()获取的查询结果集是resource。
    --如何取出?mysqli_fetch_row().. 取出一条记录,匹配成一个[索引]数组。
    --关联数组的key是区分大小写的。

--mysqli_fetch_row()        索引数组。
    --mysqli_fetch_assoc()     匹配成关联数组。
    --mysqli_fetch_array()      既支持索引数组,又支持索引数组。
    --mysqli_fetch_object()    一条记录就是一个对象,一个字段就是一个属性。
        php中,通过 -> 调用属性。
    
释放资源:mysqli_free_result($rs); //释放结果集。
关闭连接:mysqli_close($link);

--注意,mysql_free_result和mysql_close 报错。

--另外,页面执行完后,所有变量全部销毁,所以,可以不必手动释放资源。

--mysql_num_rows($rs); //获取结果集的记录数。

    header('location:url'); //跳转页面

    location.reload(url);
    location.assign(url);
    location.replace(url);
    location.href=url;

关键:页面元素与php代码的互动。
    --提交到页面,再使用超全局函数处理。

<form onsubmit='return false' ..   --终止提交

 var obj = document.getElementById(id);
    //obj.value; //input的value
    obj.select(); //js的选中!!! --之前没想过还能这样!

PHP 初学的更多相关文章

  1. DDD初学指南

    去年就打算总结一下,结果新换的工作特别忙,就迟迟没有认真动手.主要内容是很多初学DDD甚至于学习很长时间的同学没有弄明白DDD是什么,适合什么情况.这世界上没有银弹,抛开了适合的场景孤立的去研究DDD ...

  2. gulp初学

    原文地址:gulp初学 至于gulp与grunt的区别,用过的人都略知一二,总的来说就是2点: 1.gulp的gulpfile.js  配置简单而且更容易阅读和维护.之所以如此,是因为它们的工作方式不 ...

  3. 初学seaJs模块化开发,利用grunt打包,减少http请求

    原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...

  4. 初学Vue2.0--基础篇

    概述: 鉴于本人初学,使用的编译器是webStorm,需添加对VUE的支持,添加方法可以参考 http://www.jianshu.com/p/142dae4f8b51. 起步: 1. 扎实的 Jav ...

  5. 初学Python

    初学Python 1.Python初识 life is short you need python--龟叔名言 Python是一种简洁优美语法接近自然语言的一种全栈开发语言,由"龟叔&quo ...

  6. Javascript初学篇章_5(对象)

    对象 Javascript是一种面向对象的语言,因此可以使用面向对象的思想来进行javascript程序设计对象就是由一些彼此相关的属性和方法集合在一起而构成的一个数据实体.举个例子,一只猫是个对象, ...

  7. 初学Objective-C语言需要了解的星星点点

             其实大多数开发初学者都有一些相同的特点,可以说是一种“职业病”.Most有其他平台开发基础的初学者,看到Xcode就想摩拳擦掌:看到Interface Builder就想跃跃欲试:而 ...

  8. matlab初学之句柄

    文章出处:http://www.cnblogs.com/CBDoctor/archive/2012/04/06/2434072.html 在matlab中,每一个对象都有一个数字来标识,叫做句柄.当每 ...

  9. 初学HTML5、初入前端

    学习HTML5是一个漫长的过程,当中会遇到很多技术与心态上的变化.刚开始学习,我们不能发力过猛,需要一个相对稳定的状态去面对.多关注一些自己感兴趣的网站和技术知识,建立自己的信心与好奇心,为以后的学习 ...

  10. Python初学的易犯错误

    当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , ...

随机推荐

  1. Javascript变量名混淆细节

    前言 UglifyJS会对JS文件的变量名进行混淆处理.要理解Javascript变量混淆的细节.我们须要回答下面几个问题: 1.遇到一个变量myName,我们怎么知道这个myName变量要不要混淆 ...

  2. vim打造简易C语言编辑器(在用2016.7.10)

    vim和C语言都需要长期的学习,才能够精通,我制作了这个简单的笔记,主要的作用是,不要在重复的,反复的找同一样东西了,积累是成功的关键. 1. 安装pathogen插件管理器. 在官网下载pathog ...

  3. 同一个界面内取微信的OPENID和调用微信的分享接口

    步骤如下,1:判断URL是否有CODE参数传入,没有则拼接那个微信跳转连接,然后redirect2:有CODE传入,调用微信接口,根据code获取openid和access_token,注意这一步取到 ...

  4. linux安装rzsz(lrzsz)

    lrzsz是一个unix通信套件提供的,X,Y和ZModem文件传输协议,可以用在Windows与linux系统之间的文件传输,体积小速度快,可以与xshell工具配合使用. (1)在线安装 yum ...

  5. modelsim与debussy联调环境的搭建

    为了方便查看波形,找来了一款软件——debussy,它的一个优点是任你查看设计内信号,只需一个波形文件,如FSDB文件.而不用像modelsim那样想看某些信号,添加了之后还要重新编译仿真,浪费了很多 ...

  6. 利用 FormData 对象发送 Key/Value 对的异步请求

    使用Key/Value对和FormData能够轻易地通过XMLHttpRequest指定要传递什么数据,它是一个非常强大的发送数据到服务器的方法. 基础 通常的方法是你创建一个 FormData 对象 ...

  7. 李洪强iOS开发之-FMDB的用法

    // //  ViewController.m //  04 - FMDB的用法 // //  Created by 李洪强 on 2017/6/6. //  Copyright © 2017年 李洪 ...

  8. 【HBase】Rowkey设计【转】

    本章将深入介绍由HBase的存储架构在设计上带来的影响.如何设计表.row key.column等等,尽可能地使用到HBase存储上的优势. Key设计 HBase有两个基础的主键结构:row key ...

  9. gulp入门与一些基本设置

    这里是gulp入门的一些操作,实现了编译sass文件.压缩.合并.添加版本号等基本功能. 友情提示,如果npm出现无法下载可以安装 cnpm.在安装完Nodejs 后 npm install cnpm ...

  10. 【转】MySQL索引原理及慢查询优化

    MySQL凭借着出色的性能.低廉的成本.丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库.虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位 ...