PHP(1)Environment and Types
PHP(1)Environment and Types
1. Rebuild my win7 PHP environment
Download the latest version of PHP eclipse
http://mirror.cc.columbia.edu/pub/software/eclipse/technology/epp/downloads/release/helios/SR2/eclipse-php-helios-SR2-win32-x86_64.zip
Download the apache 2.2.21 version of windowns binary
http://mirrors.sonic.net/apache//httpd/binaries/win32/httpd-2.2.21-win32-x86-no_ssl.msi
Download the php source code
http://us.php.net/distributions/php-5.3.8.tar.gz
http://windows.php.net/downloads/releases/php-5.3.8-Win32-VC9-x86.zip
http://windows.php.net/downloads/releases/php-5.2.17-Win32-VC6-x86.zip
Install apache2.2.21
unzip php file php-5.3.8-Win32-VC9-x86.zip to the local dirver D:\tool\php-5.3.8
configure the apache configuration file httpd.conf
LoadModule php5_module "d:/tool/php-5.3.8/php5apache2_2.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
Action application/x-httpd-php "d:/tool/php-5.3.8/php-cgi.exe"
AddType application/x-httpd-php .html
AddType application/x-httpd-php .htm
AddDefaultCharset UTF8
PHPIniDir "d:/tool/php-5.3.8"
create and change the php.ini file according to my php blog before. Make one file index.php to the htdoc directory of apache.
Visit this page http://localhost/index.php, everything is fine till now.
And I will configure this php environment work with eclipse php version according to my prevous blogs.
But this time, I directly change the directory to
DocumentRoot "C:/Users/Digby/workspace_php"
2. PHP grammer review
3. Types
Arrays
An array can be created by the array() language construct. It takes as parameters any number of comma-separated key => value pairs.
The key can only be an integer or string, value may be any value of any type.
$arr = array("foo" => 1, 12 => true);
echo gettype($arr[12]) . "
";
echo $arr[12];
output:
boolean
1
If a key is not specified for a value, the maximum of the integer indices is taken and the new key will be that value plus 1. If a key that already has an assigned value is specified, that value will be overwritten.
$arr = array(6 => 3, 5 => 4, 5, 6, "b" => 12, 6 =>100 );
echo $arr[6] . "
";
echo $arr[5] . "
";
echo $arr[7] . "
";
echo $arr[8] . "
";
output:
100
4
5
6
Creating/modifying with square bracket syntax
$arr = array(5 => 1, 12 => 2);
$arr[] = 56;
// This is the same as $arr[13] = 56;
// at this point of the script
$arr["x"] = 42;
// This adds a new element to
// the array with key "x"
echo $arr[13] . "
";
unset($arr[5]); // This removes the element from the array
unset($arr); // This deletes the whole array
if (NULL == $arr){
echo "empty arr!";
}
?>
As mentioned above, if no key is specified, the maximum of the existing integer indices is taken, and the new key will be that maximum value plus 1.
// Create a simple array.
$array = array(1, 2, 3, 4, 5);
print_r($array);
echo "
";
// Now delete every item, but leave the array itself intact:
foreach ($array as $i => $v) {
unset($array[$i]);
echo "unset $i => $v" . "
";
}
print_r($array);
echo "
";
// Append an item (note that the new key is 5, instead of 0).
$array[] = 6;
print_r($array);
// Re-index:
$array = array_values($array);
$array[] = 7;
echo "
";
print_r($array);
output:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
unset 0 => 1
unset 1 => 2
unset 2 => 3
unset 3 => 4
unset 4 => 5
Array ( )
Array ( [5] => 6 )
Array ( [0] => 6 [1] => 7 )
Useful functions
The unset() function allows removing keys from an array. Be aware that the array will not be reindexed.
The array_values() function can be used to 'remove and shift'.
$a = array(1 => 'one', 2 => 'two', 3 => 'three');
unset($a[2]);
/* will produce an array that would have been defined as
$a = array(1 => 'one', 3 => 'three');
and NOT
$a = array(1 => 'one', 2 =>'three');
*/
print_r($a);
echo "
";
$b = array_values($a);
// Now $b is array(0 => 'one', 1 =>'three')
print_r($b);
Array do's and don'ts
$foo[bar] is wrong, but $foo['bar'] is right. This does not mean to always quote the key. Do not quote keys which are constants or variables, as this will prevent PHP from interpreting them.
examples:
$arr = array('fruit' => 'apple', 'veggie' => 'carrot');
// Correct
print $arr['fruit']."
"; // apple
print $arr['veggie']."
"; // carrot
// This defines a constant to demonstrate what's going on. The value 'veggie'
// is assigned to a constant named fruit.
define('fruit', 'veggie');
// Notice the difference now
print $arr['fruit']."
"; // apple
print $arr[fruit]."
"; // carrot
//it's inside a string. Constants are not looked for within strings
print "Hello $arr[fruit]
";
//braces surrounding arrays within strings allows constants
//to be interpreted
print "Hello {$arr[fruit]}
"; // Hello carrot
print "Hello {$arr['fruit']}
"; // Hello apple
references:
http://sillycat.iteye.com/blog/731677
http://sillycat.iteye.com/blog/768664
http://sillycat.iteye.com/blog/769110
http://sillycat.iteye.com/blog/770369

ThesecrettokeepingaPHP-poweredwebsiterunningsmoothlyunderheavyloadinvolvesseveralkeystrategies:1)ImplementopcodecachingwithOPcachetoreducescriptexecutiontime,2)UsedatabasequerycachingwithRedistolessendatabaseload,3)LeverageCDNslikeCloudflareforservin

You should care about DependencyInjection(DI) because it makes your code clearer and easier to maintain. 1) DI makes it more modular by decoupling classes, 2) improves the convenience of testing and code flexibility, 3) Use DI containers to manage complex dependencies, but pay attention to performance impact and circular dependencies, 4) The best practice is to rely on abstract interfaces to achieve loose coupling.

Yes,optimizingaPHPapplicationispossibleandessential.1)ImplementcachingusingAPCutoreducedatabaseload.2)Optimizedatabaseswithindexing,efficientqueries,andconnectionpooling.3)Enhancecodewithbuilt-infunctions,avoidingglobalvariables,andusingopcodecaching

ThekeystrategiestosignificantlyboostPHPapplicationperformanceare:1)UseopcodecachinglikeOPcachetoreduceexecutiontime,2)Optimizedatabaseinteractionswithpreparedstatementsandproperindexing,3)ConfigurewebserverslikeNginxwithPHP-FPMforbetterperformance,4)

APHPDependencyInjectionContainerisatoolthatmanagesclassdependencies,enhancingcodemodularity,testability,andmaintainability.Itactsasacentralhubforcreatingandinjectingdependencies,thusreducingtightcouplingandeasingunittesting.

Select DependencyInjection (DI) for large applications, ServiceLocator is suitable for small projects or prototypes. 1) DI improves the testability and modularity of the code through constructor injection. 2) ServiceLocator obtains services through center registration, which is convenient but may lead to an increase in code coupling.

PHPapplicationscanbeoptimizedforspeedandefficiencyby:1)enablingopcacheinphp.ini,2)usingpreparedstatementswithPDOfordatabasequeries,3)replacingloopswitharray_filterandarray_mapfordataprocessing,4)configuringNginxasareverseproxy,5)implementingcachingwi

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

SublimeText3 Chinese version
Chinese version, very easy to use
