目錄
- Comment
- require 與 include
- if
- for 與 foreach
- data type
- class
- Function
- Heredoc(<<<) - Return a formatted string
- var_dump
- newline('\r\n' 與 "\r\n")
- EGPCS Variable
- Unix time
- php import class from another file (include)
- Array
- Checking
- String
- define
Comment
- // ...
- /* .. */
require 與 include
X_once
- require_once()
- include_once()
設定在什麼 relative path include / require
<?php // 方法1 set_include_path('/usr/lib/pear'); // 方法2 ini_set('include_path', '/usr/lib/pear'); ?>
<?php if ($a > $b) { echo "a is bigger than b"; } elseif ($a == $b) { echo "a is equal to b"; } else { echo "a is smaller than b"; } ?>
for 與 foreach
for (init counter; test counter; increment counter) {
code to be executed;
}
i.e.
<?php for ($x=0; $x<=10; $x++) { echo "The number is: $x <br>"; } ?>
foreach ($array as $value) {
code to be executed;
}
e.g.
<?php $colors = array("red","green","blue","yellow"); foreach ($colors as $value) { echo "$value <br>"; } ?>
# key & value
foreach (array_expression as $key => $value) statement
data type
string gettype ( mixed $var )
- integer
- double
- NULL
- object
- string
class
Class in same file
<?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); ?>
Class in another file
<?php require_once('class.php'); ... ?>
Object in array
Doing print_r() on my array I get the following:
Array ( [0] => stdClass Object ( [id] => 25 [time] => 2014-01-16 16:35:17 [fname] => 4 [text] => 5 [url] => 6 ) )
$array[0]->url // then access its key
Function
* Function names are NOT case-sensitive.
function functionName($string) { code to be executed; return false; }
Heredoc(<<<) - Return a formatted string
i.e.
echo <<< EOF
..
...
....
...
..
EOF;
i.e.
# Heredoc text behaves just like a double-quoted string, without the double quotes.
# (Variables are expanded)
<?php
$var = <<<EOD
text goes here
EOD;
?>
要 encode 的字:
\n linefeed (LF or 0x0A (10) in ASCII) \r carriage return (CR or 0x0D (13) in ASCII) \t horizontal tab (HT or 0x09 (9) in ASCII) \v vertical tab (VT or 0x0B (11) in ASCII) (since PHP 5.2.5) \e escape (ESC or 0x1B (27) in ASCII) (since PHP 5.4.0) \f form feed (FF or 0x0C (12) in ASCII) (since PHP 5.2.5) \\ backslash \$ dollar sign \" double-quote
var_dump
# var_dump — Dumps information about a variable ( includes its type and value)
<?php $b = 3.1; $c = true; var_dump($b, $c); ?>
Dump Client POST Data
# An associative array that by default contains the contents of $_GET, $_POST and $_COOKIE.
var_dump($_REQUEST);
or
var_dump($_POST);
newline
echo '\r\n';
Only within double quoted strings the escape sequences \r and \n are recognized and replaced by 0x0D and 0x0A respectively, so:
"\r\n"
EGPCS Variable
GET
<?php if (isset($_GET['link'])) { echo $_GET['link']; }else{ // Fallback behaviour goes here } ?>
# 0 都是 empty !!
if (empty($_GET)) { // $_GET is empty }
Check Number
bool is_numeric ( mixed $var )
EGPCS 的次序
The order in which parameters are taken from the request and the environment is EGPCS
(Environment < GET < POST < Cookies < Built-in variables)
This means that a POST parameter will overwrite the parameters transported on the request line
(GET: QUERY_STRING).
Whitespace at the beginning of parameter names is ignored.
The remaining whitespace (in parameter names) is converted to underscores.
The same applies to dots and to a "["]if the variable name does not contain a matching closing bracket.
When "register_globals" is set to "On" request parameters are automatically converted to script variables.
In some PHP versions it is even possible to override the $GLOBALS array.
PHP will also automatically create nested arrays for you.
For example "p[x][y]=1" results in a total of three variables.
Unix time
Standard UNIX timestamps are a signed 32bit integer
public int DateTime::getTimestamp ( void )
<?php $date = new DateTime(); echo $date->getTimestamp(); ?>
Output:
1414393221
mysql:
mysql data type "timestamp"
0000-00-00 00:00:00
INSERT INTO `edi_record`(`record_time`) VALUES (NOW())
SELECT UNIX_TIMESTAMP( NOW( ) );
1414392987
As for int(10), the (10) portion is merely for display purposes.
php import class from another file (include)
set_include_path(".:/usr/share/pear:/usr/share/php:" . ROOT . "/pear/:");
require_once('class.php');
Array
# 沒有 Key
<?php $array = array("foo", "bar", "hello", "world"); var_dump($array); ?>
# Key
<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
);
?>
# PHP 5.4 新寫法
<?php $array = [ "foo" => "bar", "bar" => "foo", ]; ?>
# Array 的頭尾加減東西
# Pop the element off the end of array
# If array is empty (or is not an array), NULL will be returned.
$stack = array("orange", "banana", "apple", "raspberry"); $fruit = array_pop($stack);
# Push one or more elements onto the end of array
# Returns the new number of elements in the array.
$stack = array("orange", "banana"); array_push($stack, "apple", "raspberry");
# Shift an element off the beginning of array
$stack = array("orange", "banana", "apple", "raspberry"); $fruit = array_shift($stack);
# Prepend one or more elements to the beginning of an array
$queue = array("orange", "banana"); array_unshift($queue, "apple", "raspberry");
# Array Size:
$n = sizeof($arrayname);
# Delete an element from an array
# unset($array[$index]);
# unset($array["elementName"]);
$x = array("a", "b"); unset($x[0]);
# Array to String
implode — Join array elements with a string
string implode ( array $pieces )
string implode ( string $glue , array $pieces )
glue:
Defaults to an empty string.
$array = array('lastname', 'email', 'phone'); $comma_separated = implode(",", $array); echo $comma_separated; // lastname,email,phone
string to array
array explode ( string $delimiter , string $string [, int $limit ] )
$lines = explode("~", $content);
array_merge
$first_array = array( 'name1' => 'value1', 'name2' => 'value2', ); $second_array = array('name3'=>'value3'); $result_array = array_merge((array)$first_array, (array)$second_array);
Checking
is_array($var)
php check object type: get_class
string get_class ([ object $object = NULL ] )
Returns the name of the class of which object is an instance. Returns FALSE if object is not an object.
If get_class() is called with anything other than an object, an E_WARNING level error is raised.
5.3.0
NULL became the default value for object, so passing NULL to object now has the same result as not passing any value.
String
# 移除轉行
$newstr = str_replace('\n', '', $str); $newstr = str_replace('\r', '', $str); $newstr = str_replace('\r\n\', '', $str);
OR
$newstr = str_replace(array("\r\n", "\n", "\r"), '', $str);
# 字串長度
int strlen ( string $string )
strrchr()
strrchr(string,char)
The strrchr() function finds the position of the last occurrence of a string within another string,
and returns all characters from this position to the end of the string.
i.e.
// get last directory in $PATH $dir = substr(strrchr($PATH, ":"), 1);
substr()
substr(string,start,length)
The substr() function returns a part of a string. 由 0 開始.
define
Usage
define ( string $name , mixed $value [, bool $case_insensitive = FALSE ] ) : bool
global.inc.php
<?php ini_set("display_errors", "On"); error_reporting(E_ALL); define(WWWROOT, "/home/vhosts/..."); // cms
會有 Notice
Notice: Use of undefined constant WWWROOT - assumed 'WWWROOT' in /../global.inc.php on line 5
原因
WWWROOT 沒有被 " 包起